Giúp tôi lấy giá trị thứ 2 trong hàng rank

Liên hệ QC

lehoangtam

Thành viên mới
Tham gia
13/12/06
Bài viết
46
Được thích
11
Tôi sử dụng hàm rank, trong đó xuất hiện 2 giá trị đều số 3.

Tôi muốn dùng VLOOKUP, lấy giá trị. Nhưng tôi không biết lấy qua số 3 thứ 2.

Các bạn chỉ tôi làm với, Cảm ơn nhiều lắm.
 
Bạn ko nên dùng Vlookup trong trường hợp này... Chú ý rằng cột STT luôn có dử liệu khác nhau theo từng dòng... Vậy thì dùng hàm INDEX(Bảng tính, dòng, cột)... Với cột là cột chứa hàm RANK, với dòng là dòng lấy ra từ hàm MATCH(Trị dò, bảng)... Hàm MATCH này có tri dò là dử liệu trong cột STT
Mến
ANH TUẤN
 
Như vậy không được , vì tôi cần lấy giá trị của cột khác, chứ không phải cột đó.
 
Cột nào cũng thế thôi... bạn muốn lấy cột nào thì INDEX cột đó... nhưng MATCH thì luôn lấy trị dò là cột STT
Bạn nghiên cứu thử đi... Tôi nói là dc.. còn nếu bạn có khó khăn thì post file lên, mọi người giãi quyết cho
ANH TUẤN
 
Mình nghĩ yêu cầu này có thể dùng Auto Filter có vẻ đơn giản hơn đó

TDN
 
Cái này thật khó nói... Tại ko biết rõ bạn ấy định làm gì... Nhưng tôi nghĩ dù bạn ấy muôn thế nào cũng có cách giãi quyết... Tốt nhất nên post file lên thì hay hơn
ANH TUAN
 
lehoangtam đã viết:
Tôi sử dụng hàm rank, trong đó xuất hiện 2 giá trị đều số 3.

Tôi muốn dùng VLOOKUP, lấy giá trị. Nhưng tôi không biết lấy qua số 3 thứ 2.

Các bạn chỉ tôi làm với, Cảm ơn nhiều lắm.
Bạn tham khảo file sau:
 

File đính kèm

  • timkiem.xls
    14 KB · Đọc: 60
Anh nvson ơi!

Đúng là em muốn làm như vậy, nhưng file anh gửi, em đọc mà chưa hiểu hết.

Em chia ra từng hàm nhỏ để làm cho dễ thì nó không ra.

Em gửi lên làm anh chỉ giúp.

Thanks anh.
 

File đính kèm

  • timkiem.rar
    1.7 KB · Đọc: 32
Cơ bản là bạn hãy tìm hiểu cú pháp hàm Offset, nó sẽ trả về một mảng (array) giá trị đấy.
Lúc đó phải kết hợp với hàm Index để lấy giá trị....
 
Muốn dễ hiểu hơn thì làm theo cách này! Vẫn là INDEX và MATCH... (chủ yếu có hàm MAX là phòng khi lở bạn gõ vào số là duy nhất thì nó vẫn cho kết quả... còn nếu bạn muốn tìm chính xác số thứ 2 thì thay MAX($C$1:$C$10) thành 2)
Mến
ANH TUẤN
 
Lần chỉnh sửa cuối:
Cảm ơn anh anhtuan1066 và nvson.

Tui chưa làm được theo ý mình nữa.

Ý tôi là như vầy: Tôi thống kê gía chứng khóan, hàng ngày cần lấy tốp 5 của chứng khoán giảm, tăng, giao dịch nhiều nhất.

Tôi gửi file lên. Các bạn coi dùm tôi sheet Thong ke.

Cảm ơn nhiều.
 

File đính kèm

  • Thong ke San HOSTC.rar
    26.1 KB · Đọc: 25
Theo mình bạn nên sử dụng chức năng Data/ Filter/ AutoFilter kết hợp với VBA sẽ đơn giản hơn.
Trong sheet "Thong ke GD", chọn dòng số 8, rồi nhấn Data/ Filter/ AutoFilter
Nhấn vào nút ở ô B8, chọn Top10, hộp thoại hiện ra:
Đặt giá trị 5 cho ô ở giữa.
Chọn Top nếu muốn cho ra 5 Items lớn nhất (ở cột B) hoặc chọn Bottom nếu muốn cho ra 5 Items nhỏ nhất.
....
Bạn đọc thêm bài này (#9) để xử lý vùng đã lọc bằng VBA
 
Nhưng tui hỏng biết sài VB, hiện tôi chỉ lọc ra được giá trị thứ 2 trùng nhau. Nhưng nếu có 3 số trùng nhau thì tôi không lọc được số thứ 3.
 
Tôi ko biết gì về chứng khoán cả nên thật khó mà giúp bạn... Nhưng đọc 1 vài chổ trong file thì tôi hơi hiểu đôi chút.. Ở sheet ThongKe, có lẽ bạn gặp khó khăn khi trích ra tên 5 MÃ CHỨNG KHOÁN... Tôi làm thử bân phần TĂNG GIÁ, còn GIÃM GIÁ chắc tuơng tự... bạn xem có đúng ý ko nha! (Chú ý cột phụ bên sheet ThongKe GD)
Còn mấy cái khác tôi nhìn chẳng hiểu gì... Mấy phần dưới MATCH, ROW rồi mấy ô màu vàng là bạn muốn làm cái gì vậy?
Mến
ANH TUẤN
 
Lần chỉnh sửa cuối:
Xin lỗi... hình như là chưa đúng thì phải... Đễ tôi xem lại...
ANH TUẤN
 
anhtuan1066 ơi,

Chưa đúng thiệt.

Vì đến 2 mã chứng khóan xếp hạng 3.

Dựa vào VD trước tôi đã lấy được mã thứ 2. Nhưng khi giảm giá đến 3 mã xếp hạng giống nhau. Tôi muốn lấy mã xếp thứ 3 mà không được.

Các hàm ở dưới là tôi làm theo ví dụ của nvson để lấy mã thứ 2 trúng lại.
 
Lần chỉnh sửa cuối:
Bạn thêm vào hàm rank như sau, cơ bản để lấy 5 dv, nếu mà có đơn vị = chỉ tiêu thì ngẫu nhiên cho là 6, cụ thể 2 hạng 1, 2 hạng 3, 2 hạng 5 (hàm rank) thì trong 2 em hạng 5 trên sẽ bỏ lại 1
Cụ thể tại C9 của TKGD ta thêm hàm countif.
=RANK($U9,U$9:U$118)+COUNTIF($U$9:$U9,$U9)-1
Copy và kéo xuống.
Việc còn lại là Vlookup.
 
Cái này lấy dc 5 "thằng" tăng nhiều nhất và 5 "thằng" giãm nhiều nhất... Bấm vào nút SẮP XẾP nha!
Làm thử chơi thôi chứ chẳng biết gì hết.. hi... hi... Đễ từ từ tôi nghĩ xem có cách nào khác ko dùng VBA ko? Cái này coi bộ cũng khá hay đây!
ANH TUẤN
 
Lần chỉnh sửa cuối:
Tôi sử dụng VBA để giải quyết, còn bạn nếu không thích thì coi như để tham khảo:
Mở file Thong ke*.xls của bạn, Insert 1 worksheet, đặt tên cho worksheet đó là Tam.
Nhấn Alt+F11 để vào VBA
Nhấn Insert/ Module, rồi thêm đoạn code sau:
Mã:
Option Explicit
Public Sub Tang_Top5()
    On Error Resume Next
    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
    End With
    
    Sheets("Thong ke GD").Select
    Range("A8:V8").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:="5", Operator:=xlBottom10Items
    
    Dim endRow As Long
    endRow = Range("B65536").End(xlUp).Row
    If endRow >= 9 Then
        
        Range("B9:B" & endRow & ",E9:E" & endRow & ",T9:T" & endRow & ",V9:V" & endRow).Select
        Selection.SpecialCells(xlCellTypeVisible).Select
                        
        Selection.SpecialCells(xlCellTypeVisible).Select
        Selection.Copy
        
        Sheets("Tam").Select
        Range("A1").Select
        ActiveSheet.Paste
        Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
        
        Sheets("Thong ke").Select
        Sheets("Thong ke").Range("B4:E8").Value = Sheets("Tam").Range("A1:D5").Value
        Sheets("Tam").Range("A1:D5").Clear
    End If
    
    Sheets("Thong ke GD").Select
    Selection.AutoFilter
    Sheets("Thong ke").Select
    
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub
Hãy viết code tương tự cho trường hợp 5 Items giảm nhiều nhất....
 
Ha... ha... Có lẽ đối với nguời dùng VBA thì dễ như trở bàn tay thật... Nhưng đễ làm bằng công thức thì thế nào nhỉ? Tôi nghĩ mãi "Có cái gì khác nhau giữa số 1 ở trên và số 1 ở dưới?"... Thật ra phải có khác nhau chứ... (tại mình ngu nên chưa phát hiện ra) hi.. hi...
Nếu kết hợp hàm RANK cùng với cột số TT thì sao? Tất nhiên là số 1 trên sẽ khác hoàn toàn số 1 dưới...
Bạn xem file tôi post đây!
Bây giờ mà bạn muốn trùng dử liệu e rằng hơi bị khó đấy! Hi.. hi... Nhưng bạn chú ý ở đây có lấy cột STT làm công thức nên hảy cẩn thận, cột này mà sai coi như đi toi luôn...
ANH TUẤN
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom