Việc không có tất cả thông tin cần thiết trong cùng một worksheet là điều khá phổ biến. Nhưng để tạo cơ sở dữ liệu hoàn chỉnh, chúng ta cần tra cứu các sheet khác trong Excel để lấy dữ liệu. Để xử lý loại rắc rối này, Microsoft Excel cung cấp hàm đa năng VLOOKUP; cho phép tra cứu trên nhiều sheet. Vì vậy, sử dụng hàm VLOOKUP, chúng ta sẽ dạy bạn 3 phương pháp để tra cứu trên nhiều sheet trong Excel dễ dàng.
Tải file thực hành
Bạn nên tải file Excel và thực hành cùng bài viết.
3 phương pháp tra cứu trên nhiều sheet trong Excel
Giả sử một cửa hàng sách bán sách cả trực tuyến và tại cửa hàng. Họ có hai danh sách sách: sách bán trực tuyến và sách bán tại cửa hàng.


Trong hướng dẫn này, chúng ta sẽ dạy cách kết hợp hai danh sách này thành danh sách sách hoàn chỉnh mới bằng 3 phương pháp riêng biệt.
1. Tra cứu trên nhiều sheet trong Excel với IFERROR
Để tạo danh sách sách hoàn chỉnh chứa sách bán cả trực tuyến và tại cửa hàng, cần kết hợp thông tin từ worksheet "Store" (Cửa hàng) và "Online" (Trực tuyến).
Làm theo các bước sau để tra cứu:
🔗 Các bước:
❶ Chọn ô C5 để lưu kết quả công thức.
❷ Nhập công thức sau:
=IFERROR(VLOOKUP(B5,Store!$B$5:$D$9,2, FALSE), IFERROR(VLOOKUP(B5,Online!$B$5:$D$9, 2, FALSE), "Not found"))trong ô.
❸ Nhấn ENTER.

❹ Kéo Fill Handle đến cuối cột Book Name (Tên sách).

Đã xong.
💡 Để hoàn thiện cột Author (Tác giả), dùng công thức:
=IFERROR(VLOOKUP(B5,Store!$B$5:$D$9,3, FALSE), IFERROR(VLOOKUP(B5,Online!$B$5:$D$9, 3, FALSE), "Not found"))trong ô D5 và lặp lại bước 1 đến 4.
␥ Phân tích công thức
📌 Cú pháp: IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), …, "Not found"))
- B5 ▶ lấy một ID, làm khóa tìm kiếm.
- Store!$B$5:$D$9 ▶ tìm kiếm trong phạm vi B5 đến D9 trên sheet Store.
- Online!$B$5:$D$9 ▶ tìm kiếm trong phạm vi B5 đến D9 trên sheet Online.
- 2 ▶ chỉ cột Book Name để lấy tên sách.
- FALSE ▶ đối số dùng cho khớp chính xác.
=IFERROR(VLOOKUP(B5,Store!$B$5:$D$9,2, FALSE), IFERROR(VLOOKUP(B5,Online!$B$5:$D$9, 2, FALSE), "Not found"))▶ trả về tên sách với ID số 96.
Đọc thêm: Tra cứu và trả về nhiều giá trị nối thành một ô trong Excel
2. Excel VLOOKUP nhiều sheet với INDIRECT
Chúng ta có thể tra cứu nhiều sheet bằng hàm INDIRECT thay vì IFERROR. Tuy nhiên, cần lưu ý rằng dù INDIRECT cung cấp sự linh hoạt hơn khi truy xuất dữ liệu trên nhiều sheet, cú pháp của nó phức tạp hơn. Vì vậy, hãy cẩn thận khi dùng INDIRECT kết hợp VLOOKUP. Đi thẳng vào các bước:
🔗 Các bước:
❶ Chọn ô C5 để lưu kết quả.
❷ Nhập công thức:
=VLOOKUP($B5,INDIRECT("'"&INDEX($F$5:$F$6,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$F$6&"'!$B5:$B9"),$B5)>0,0))&"'!$B$5:$D$9"),2,0)trong ô.
❸ Nhấn ENTER.

❹ Kéo Fill Handle đến cuối cột Book Name.

Đã xong.
💡 Để hoàn thiện cột Author, dùng công thức:
=VLOOKUP($B5,INDIRECT("'"&INDEX($F$5:$F$6,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$F$6&"'!$B5:$B9"),$B5)>0,0))&"'!$B$5:$D$9"),3,0)trong ô D5 và lặp bước 1 đến 4.
␥ Phân tích công thức
📌 Cú pháp: VLOOKUP(lookup_value, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(TRUE, --(COUNTIF(INDIRECT("'"& Lookup_sheets & "'!lookup_range"), lookup_value)>0), 0)) & "'!table_array"), col_index_num, FALSE)
- Lookup_value ▶ $B5 ▶ từ khóa tìm kiếm.
- Lookup_sheets ▶ $F$5:$F$6 ▶ địa chỉ danh sách sheet tra cứu.
- Lookup_range ▶ $B5:$B9 ▶ phạm vi chứa giá trị tra cứu.
- Table_array ▶ $B$5:$D$9 ▶ phạm vi toàn bộ bảng dữ liệu.
- Column_index_number ▶ 2 ▶ số cột lấy dữ liệu mong muốn.
Đọc thêm: VBA INDEX MATCH dựa trên nhiều tiêu chí trong Excel (3 phương pháp)
3. Tra cứu trên nhiều sheet trong Excel dùng hàm IF lồng nhau
Cách khác để tra cứu nhiều sheet là dùng hàm IF lồng nhau (Nested IF) kết hợp ISNA và VLOOKUP.
Nếu bạn chỉ có vài sheet dữ liệu, phương pháp này dễ dùng. Ngược lại, nếu số sheet nhiều, bạn không nên dùng vì công thức trở nên rất phức tạp.
Dù sao, hãy làm theo các bước dưới đây để hiểu cách công thức hoạt động:
🔗 Các bước:
❶ Chọn ô C5 để lưu kết quả.
❷ Nhập công thức:
=IF(ISNA(VLOOKUP($B5,Store!$B$5:$D$9,2,0)),VLOOKUP($B5,Online!$B$5:$D$9,2,0),IF(ISNA(VLOOKUP($B5,Online!$B$5:$D$9,2,0)),VLOOKUP($B5,Store!$B$5:$D$9,2,0)))trong ô.
❸ Nhấn ENTER.

❹ Kéo Fill Handle đến cuối cột Book Name.

Đã xong.
💡 Để hoàn thiện cột Author, dùng công thức:
=IF(ISNA(VLOOKUP($B5,Store!$B$5:$D$9,3,0)),VLOOKUP($B5,Online!$B$5:$D$9,3,0),IF(ISNA(VLOOKUP($B5,Online!$B$5:$D$9,3,0)),VLOOKUP($B5,Store!$B$5:$D$9,3,0)))trong ô D5 và lặp bước 1 đến 4.
␥ Phân tích công thức
📌 Cú pháp: IF(ISNA(VLOOKUP(lookup_value,table_array,col_index_number,0)),value_if_true,value_if_false)
- Lookup_value ▶ $B5 ▶ từ khóa tìm kiếm.
- Table_array ▶ $B$5:$D$9 ▶ phạm vi toàn bộ bảng dữ liệu.
- Column_index_number ▶ 2 ▶ số cột lấy dữ liệu mong muốn.
- ISNA(VLOOKUP($B5,Store!$B$5:$D$9,3,0)) ▶ tìm khớp chéo của ID (tham chiếu $B5) trong phạm vi $B$5:$D$9.
- IF(ISNA(VLOOKUP($B5,Store!$B$5:$D$9,3,0)),VLOOKUP($B5,Online!$B$5:$D$9,3,0) ▶ Nếu ISNA(...) đúng thì lấy tên sách bằng VLOOKUP($B5,Online!$B$5:$D$9,3,0).
- Nếu phần IF(ISNA(VLOOKUP($B5,Store!$B$5:$D$9,3,0)),VLOOKUP($B5,Online!$B$5:$D$9,3,0) sai thì vào IF(ISNA(VLOOKUP($B5,Online!$B$5:$D$9,3,0)),VLOOKUP($B5,Store!$B$5:$D$9,3,0)).
- IF(ISNA(VLOOKUP($B5,Online!$B$5:$D$9,3,0)),VLOOKUP($B5,Store!$B$5:$D$9,3,0)) ▶ Nếu ISNA(...) đúng thì lấy tên sách bằng VLOOKUP($B5,Store!$B$5:$D$9,3,0)).
Đọc thêm: VLOOKUP với nhiều tiêu chí bao gồm khoảng ngày trong Excel (2 cách)
Lưu ý quan trọng
📌 Giá trị tra cứu phải luôn ở cột đầu tiên trong mảng bảng (table array).
📌 Dùng Ctrl + Shift + Enter cùng lúc để hoàn thành công thức mảng.
📌 Chú ý cú pháp các hàm.
📌 Nhập phạm vi dữ liệu cẩn thận vào công thức.
Kết luận
Tóm lại, chúng ta đã thảo luận 3 phương pháp riêng biệt để tra cứu trên nhiều sheet trong Excel. Bạn nên tải file thực hành đính kèm và thực hành tất cả. Đừng ngần ngại hỏi đáp trong bình luận. Chúng tôi sẽ phản hồi sớm nhất.
Các bài đọc liên quan
- VLOOKUP với nhiều tiêu chí không cần cột phụ trong Excel (5 cách)
- Cách dùng INDEX MATCH với nhiều tiêu chí cho khoảng ngày
- INDEX-MATCH với nhiều tiêu chí cho văn bản một phần trong Excel (2 cách)
- XLOOKUP với nhiều tiêu chí trong Excel (4 cách dễ dàng)