[ Cần giúp đỡ] hàm Vlookup chỉ trả về giá trị đầu tiên (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Datcdt2k9

Thành viên hoạt động
Tham gia
27/12/19
Bài viết
109
Được thích
11
Em chào mọi người
Em đang gặp vấn đề khi dò tim dữ liệu , hàm vlookup chỉ trả về giá trị đầu tiên mà kết quả em mong muốn là giá trị cuối cùng, ví dụ trong bài của em có các giá trị A=> trả về A, giá trị A, B => trả về B, giá trị A ,B, C => trả về C. Cứ thế cho hết bảng chữ cái.
Vậy có cách nào (công thức hoặc code đều được ạ) để trả về giá trị cuối cùng khi tra cứu dữ liệu không (dữ liệu là các giá trị A,B,C...Z). Nhờ các anh chị giúp đỡ em ạ. Em xin ảm ơn
1608991983284.png
 

File đính kèm

Thử cách sau:
Mã:
=LOOKUP(,0/FREQUENCY(1,COUNTIF(F$2:F$19,">="&F$2:F$19)*(E$2:E$19=A2)),F$2:F$3)
 
Em chào mọi người
Em đang gặp vấn đề khi dò tim dữ liệu , hàm vlookup chỉ trả về giá trị đầu tiên mà kết quả em mong muốn là giá trị cuối cùng, ví dụ trong bài của em có các giá trị A=> trả về A, giá trị A, B => trả về B, giá trị A ,B, C => trả về C. Cứ thế cho hết bảng chữ cái.
Vậy có cách nào (công thức hoặc code đều được ạ) để trả về giá trị cuối cùng khi tra cứu dữ liệu không (dữ liệu là các giá trị A,B,C...Z). Nhờ các anh chị giúp đỡ em ạ. Em xin ảm ơn
View attachment 251931
Tham khảo công thức mảng =CHAR(MAX(VALUE(($E$2:$E$19=$A2)*(CODE($F$2:$F$19)))))
 
Hàm tự tạo sau, để tham khảo lúc rỗi:
PHP:
Function DoTim(BangTra As Range, TK As String) As String
Dim Arr():              Dim J As Long

Arr() = BangTra.Value
For J = 1 To UBound(Arr())
    If Arr(J, 1) = TK Then
        If Arr(J, 2) > DoTim Then DoTim = Arr(J, 2)
    End If
Next J
End Function

Cú pháp: =DoTim(E1:F19, E14)
 

File đính kèm

Lần chỉnh sửa cuối:
Thử cách sau:
Mã:
=LOOKUP(,0/FREQUENCY(1,COUNTIF(F$2:F$19,">="&F$2:F$19)*(E$2:E$19=A2)),F$2:F$3)
em cảm ơn rất nhiều ạ
Bài đã được tự động gộp:

Hàm tự tạo sau, để tham khảo lúc rỗi:
PHP:
Function DoTim(BangTra As Range, TK As String) As String
Dim Arr():              Dim J As Long

Arr() = BangTra.Value
For J = 1 To UBound(Arr())
    If Arr(J, 1) = TK Then
        If Arr(J, 2) > DoTim Then DoTim = Arr(J, 2)
    End If
Next J
End Function

Cú pháp: =DoTim(E1:F19, E14)
mình không rành về code , bạn có thể giúp mình hoàn thành được không
Bài đã được tự động gộp:

Tham khảo công thức mảng =CHAR(MAX(VALUE(($E$2:$E$19=$A2)*(CODE($F$2:$F$19)))))
em cảm ơn ạ
Bài đã được tự động gộp:

Thử cách sau:
Mã:
=LOOKUP(,0/FREQUENCY(1,COUNTIF(F$2:F$19,">="&F$2:F$19)*(E$2:E$19=A2)),F$2:F$3)
Bảng dò tìm của em hàng ngày các dòng dữ liệu update tăng dần lên, công thức như này thì bị giới hạn f2:f19,e2:e19. có cách nào khi em tăng dữ liệu công thức vẫn nhận không ạ
Bài đã được tự động gộp:

Tham khảo công thức mảng =CHAR(MAX(VALUE(($E$2:$E$19=$A2)*(CODE($F$2:$F$19)))))
Bảng dò tìm của em hàng ngày các dòng dữ liệu update tăng dần lên, công thức như này thì bị giới hạn f2:f19,e2:e19. có cách nào khi em tăng dữ liệu công thức vẫn nhận không ạ
 
Lần chỉnh sửa cuối:
em cảm ơn rất nhiều ạ
Bài đã được tự động gộp:


mình không rành về code , bạn có thể giúp mình hoàn thành được không
Bài đã được tự động gộp:


em cảm ơn ạ
Bài đã được tự động gộp:


Bảng dò tìm của em hàng ngày các dòng dữ liệu update tăng dần lên, công thức như này thì bị giới hạn f2:f19,e2:e19. có cách nào khi em tăng dữ liệu công thức vẫn nhận không ạ
Bài đã được tự động gộp:


Bảng dò tìm của em hàng ngày các dòng dữ liệu update tăng dần lên, công thức như này thì bị giới hạn f2:f19,e2:e19. có cách nào khi em tăng dữ liệu công thức vẫn nhận không ạ
sửa số 19 thành số nào đó ví dụ 100000
 
sửa số 19 thành số nào đó ví dụ 100000
em sửa cho giá trị này lên cao rồi nhưng công thưc báo lỗi 1609036666444.png
Bài đã được tự động gộp:

Bạn tham khảo file bài trên (của mình)

Sẽ xóa bài này khi bạn đã xem!
em không rành về code , thông thường em thấy sẽ có sub và end sub nhưng hàm trên anh gửi không có nên em không biết cách chạy code. anh giúp em với ạ. bảng dò tìm của em thực tế nhiều dòng hơn nữa
 
bạn tham khảo công thức =CHAR(MAX(IFERROR(($E$2:$E$30000=$A2)*CODE($F$2:$F$30000);Vâng em thử được `

bạn tham khảo công thức =CHAR(MAX(IFERROR(($E$2:$E$30000=$A2)*CODE($F$2:$F$30000);0)))
vâng, em thử được rồi ạ, cảm ơn các anh chị đã giúp đỡ
Bài đã được tự động gộp:

Thủ tăng lên 30.000 dòng xem nó báo lỗi không?
em thử ok rồi ạ.Cảm ơn anh chị đã giúp ạ
 
Dò tìm dưới lên nếu dùng Excel 365 thì dùng XLOOKUP với tham số search mode = -1
 

File đính kèm

Web KT

Bài viết mới nhất

Trả lời
14
Đọc
5K
Back
Top Bottom