Dùng hàm VLOOKUP tìm dữ liệu trong nhiều Sheet

Thông thường chúng ta hay dùng hàm VLOOKUP , hoặc HLOOKUP , để tìm giá trị trong một bảng dữ liệu

nhưng nếu như bảng dữ liệu tại Sheet này không có phải chuyển sang bảng dữ liệu ở những Sheet khác để tìm kiếm thì cách viết công thức như sau :

Ví dụ hàm VLOOKUP chỉ trong một bảng của Sheet

 

=VLOOKUP(C1,$A$2:$B$25,2,0)

 

Hàm VLOOKUP tìm kiếm nhiều bảng tại những Sheet khác nhau

 

=IF(ISNA(VLOOKUP(C1,Sheet1!$A$2:$B$25,2,0)),IF(ISNA(VLOOKUP(C1,Sheet2!$A$2:$B$25,2,0)),

IF(ISNA(VLOOKUP(C1,Sheet3!$A$2:$B$25,2,0)),VLOOKUP(C1,Sheet3!$A$2:$B$25,2,0)),

VLOOKUP(C1,Sheet2!$A$2:$B$25,2,0)),VLOOKUP(C1,Sheet1!$A$2:$B$25,2,0))

 

Trong ví dụ trên được tìm kiếm qua 3 Sheet khác nhau .

 

Bạn cũng có thể dùng Macro tìm kiếm qua tất cả các Sheet . Macro viết như sau

 

Function VLOOKAllSheets(Look_Value As Variant, Tble_Array As Range, Col_num As Integer, Optional Range_look As Boolean)

Dim wSheet As Worksheet

Dim vFound

On Error Resume Next

    For Each wSheet In ActiveWorkbook.Worksheets

        With wSheet

        Set Tble_Array = .Range(Tble_Array.Address)

            vFound = WorksheetFunction.VLookup _

            (Look_Value, Tble_Array, _

            Col_num, Range_look)

        End With

        If Not IsEmpty(vFound) Then Exit For

    Next wSheet

    Set Tble_Array = Nothing

    VLOOKAllSheets = vFound

End Function

 

Công thức tìm kiếm trên với 3 Sheet trước đó có thể được viết như sau

 

=VLOOKAllSheets(C1,A1:B25,2,FALSE)

 

 

\"\"