Chúng ta hay biết đến và sử dụng hàm VLOOKUP trong excel, nhưng hạn chế của hàm này là chỉ trả về một kết quả, nếu bạn muốn trả về nhiều kết quả thì bài viết này sẽ giới thiệu cho các bạn hai cách.
Chúng ta có một bảng tính bên dưới, có nhiều giá trị A, B..với nhiều kết quả khác nhau, yêu cầu là làm thế nào để trả về mọi kết quả của các giá trị mà ta cần tìm.
Như đã nói ở trên, nếu sử dụng hàm VLOOKUP ở trong trường hợp này
Thì chỉ trả về được 1 kết quả, cụ thể như giá trị A chúng ta có đến 3 kết quả đó là 1,2,3, nhưng hàm VLOOKUP chỉ trả về mỗi kết quả là 1.
Bây giờ ở ô D1 các bạn nhập hàm sau vào
=TEXTJOIN(",";TRUE;IF($A$1:$A$10=$C1;$B$1:$B$10;""))
Nhấn Enter
Kết quả trả về đúng và đủ các giá trị cần tìm
Chú ý một điều vì lúc viết bài này thì viết trên Office 365 nên chỉ việc Enter là xong, còn nếu như Office của bạn thấp hơn thì nhấn CTRL + SHIFT + ENTER mới ra kết quả
Thật đáng tiếc là hàm TEXTJOIN không có ở các phiên bản Office thấp hơn, do vậy các bạn sẽ sử dụng VBA để thay thế, các bạn nhấn ALT + F11 để mở cửa sổ Microsoft Visual Basic For Applications lên
Sau đó nhấn Insert - Module
Dán đoạn code bên dưới vào khung soạn thảo
Function myVlookUp(lookup_value, lookup_range As Range, index_col As Long)
Dim x As Range
Dim result As String
result = ""
For Each x In lookup_range
If x = lookup_value Then
result = result & "," & x.Offset(0, index_col - 1)
End If
Next
myVlookUp = Right(result, Len(result) - 1)
End Function
Quay trở lại file excel và nhập vào ô E1 công thức
=myVlookUp(C1;$A$1:$A$10;2)
Nhấn Enter
Kết quả giống với hàm TEXTJOIN rồi nhé
Hy vọng với hai cách trên các bạn sẽ linh hoạt hơn khi làm việc với excel.
➤ Bài nên xem: Hàm textjoin tìm kiếm nhiều điều kiện trong excel
Chúc các bạn thành công.