NTM Solutions

Thứ Bảy, 22 tháng 8, 2026

📊 PHẦN 7 — HÀM TRA CỨU VÀ THAM CHIẾU DỮ LIỆU TRONG EXCEL

Trong thực tế, dữ liệu thường nằm ở nhiều bảng khác nhau.

Ví dụ:

Bảng nhân viên

Mã NVHọ tênMã phòng
NV001Nguyễn AnKT
NV002Trần BìnhKD
NV003Lê CườngIT

Bảng phòng ban

Mã phòngTên phòng
KTKế toán
KDKinh doanh
ITCông nghệ thông tin

Thay vì nhập lại tên phòng cho từng nhân viên, Excel có thể tự động tra cứu từ bảng khác.

Đó chính là nhiệm vụ của các hàm:

  • VLOOKUP

  • HLOOKUP

  • XLOOKUP

  • INDEX

  • MATCH


56. Hàm VLOOKUP

VLOOKUP là một trong những hàm tra cứu nổi tiếng nhất của Excel.

VLOOKUP có nghĩa là:

Vertical Lookup — tra cứu theo chiều dọc.

Cú pháp:

=VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])

Trong đó:

  • lookup_value — giá trị cần tìm.

  • table_array — bảng cần tra cứu.

  • col_index_num — số thứ tự cột cần lấy kết quả.

  • range_lookup — kiểu tìm kiếm.


Ví dụ cơ bản

Có bảng:

Mã SPSản phẩmĐơn giá
SP001Laptop15000000
SP002Máy in5000000
SP003Màn hình4500000

Ở ô E2 có:

SP002

Muốn lấy tên sản phẩm:

=VLOOKUP(E2,A2:C4,2,FALSE)

Kết quả:

Máy in

Muốn lấy đơn giá:

=VLOOKUP(E2,A2:C4,3,FALSE)

Kết quả:

5000000

FALSE và TRUE trong VLOOKUP

Đây là phần rất quan trọng.

FALSE — tìm chính xác

=VLOOKUP(E2,A2:C4,2,FALSE)

Excel yêu cầu tìm đúng giá trị.

Ví dụ:

SP002

phải tìm đúng:

SP002

Nếu không tìm thấy → trả về lỗi #N/A.


TRUE — tìm gần đúng

=VLOOKUP(E2,A2:C4,2,TRUE)

Dùng khi bảng được sắp xếp và muốn tìm giá trị gần đúng.

Ví dụ thường gặp:

  • Xếp loại điểm.

  • Tính thuế.

  • Tính chiết khấu.

  • Xác định mức thưởng.


Lỗi thường gặp với VLOOKUP

Ví dụ:

=VLOOKUP(E2,A2:C4,4,FALSE)

nhưng bảng chỉ có 3 cột.

Excel sẽ báo lỗi vì cột thứ 4 không tồn tại.


Hạn chế của VLOOKUP

VLOOKUP có một hạn chế quan trọng:

Giá trị cần tra cứu phải nằm ở cột đầu tiên của vùng tra cứu.

Ví dụ:

Họ tênMã NVPhòng
Nguyễn AnNV001Kế toán

Nếu muốn tìm theo Mã NV nhưng Mã NV nằm ở cột B và muốn lấy dữ liệu bên trái ở cột A thì VLOOKUP không thuận tiện.

Trong trường hợp này có thể dùng:

  • XLOOKUP

  • INDEX + MATCH


57. Hàm HLOOKUP

HLOOKUP là:

Horizontal Lookup — tra cứu theo chiều ngang.

Cú pháp:

=HLOOKUP(lookup_value,table_array,row_index_num,[range_lookup])

Khác với VLOOKUP:

  • VLOOKUP → tìm theo cột.

  • HLOOKUP → tìm theo hàng.


Ví dụ

Bảng:

ABCD
1SP001SP002SP003SP004
2LaptopMáy inMàn hìnhChuột
31500000050000004500000300000

Muốn tìm tên sản phẩm của SP003:

=HLOOKUP("SP003",A1:D3,2,FALSE)

Kết quả:

Màn hình

Muốn lấy giá:

=HLOOKUP("SP003",A1:D3,3,FALSE)

Kết quả:

4500000

VLOOKUP và HLOOKUP

HàmHướng tra cứu
VLOOKUPDọc
HLOOKUPNgang

Trong các bảng dữ liệu hiện đại, VLOOKUP thường được sử dụng nhiều hơn HLOOKUP.


58. Hàm XLOOKUP

XLOOKUP là hàm tra cứu hiện đại, linh hoạt hơn VLOOKUP và HLOOKUP.

Cú pháp:

=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found])

Trong đó:

  • lookup_value — giá trị cần tìm.

  • lookup_array — vùng tìm kiếm.

  • return_array — vùng trả kết quả.

  • if_not_found — kết quả nếu không tìm thấy.


Ví dụ cơ bản

Bảng:

Mã SPSản phẩmĐơn giá
SP001Laptop15000000
SP002Máy in5000000
SP003Màn hình4500000

E2:

SP002

Tìm tên sản phẩm:

=XLOOKUP(E2,A2:A4,B2:B4)

Kết quả:

Máy in

Tìm đơn giá:

=XLOOKUP(E2,A2:A4,C2:C4)

Kết quả:

5000000

XLOOKUP có thể tìm sang trái

Đây là một ưu điểm lớn.

Bảng:

Họ tênMã NVPhòng
Nguyễn AnNV001Kế toán
Trần BìnhNV002Kinh doanh
Lê CườngNV003IT

Muốn nhập:

NV002

và tìm họ tên:

=XLOOKUP(E2,B2:B4,A2:A4)

Kết quả:

Trần Bình

Không cần đảo vị trí các cột.


XLOOKUP xử lý dữ liệu không tìm thấy

Có thể chỉ định kết quả khi không tìm thấy:

=XLOOKUP(E2,A2:A4,B2:B4,"Không tìm thấy")

Nếu E2 chứa:

SP999

kết quả:

Không tìm thấy

Cách này giúp bảng tính dễ đọc hơn thay vì xuất hiện:

#N/A

59. Hàm INDEX

INDEX dùng để trả về giá trị tại một vị trí cụ thể trong vùng dữ liệu.

Cú pháp:

=INDEX(array,row_num,[column_num])

Ví dụ

Có bảng:

ABC
Nguyễn AnKế toán15000000
Trần BìnhNhân sự14000000
Lê CườngIT20000000

Công thức:

=INDEX(A2:C4,2,3)

Có nghĩa:

  • Hàng thứ 2.

  • Cột thứ 3.

Kết quả:

14000000

INDEX với một cột

Ví dụ:

=INDEX(A2:A4,2)

Kết quả:

Trần Bình

INDEX rất mạnh khi kết hợp MATCH

Bản thân INDEX chỉ biết:

"Hãy lấy dữ liệu ở vị trí này."

Nhưng nếu không biết vị trí thì sao?

Ta dùng MATCH.


60. Hàm MATCH

MATCH dùng để tìm vị trí của một giá trị trong một vùng.

Cú pháp:

=MATCH(lookup_value,lookup_array,[match_type])

Ví dụ:

=MATCH("Trần Bình",A2:A4,0)

Kết quả:

2

Vì Trần Bình nằm ở vị trí thứ 2 trong vùng:

A2:A4

MATCH với mã sản phẩm

Có bảng:

A
SP001
SP002
SP003
SP004

Công thức:

=MATCH("SP003",A2:A5,0)

Kết quả:

3

61. Kết hợp INDEX + MATCH

Đây là kỹ thuật tra cứu rất quan trọng.

Có bảng:

Mã NVHọ tênPhòng banLương
NV001Nguyễn AnKế toán15000000
NV002Trần BìnhNhân sự14000000
NV003Lê CườngIT20000000

Muốn nhập mã:

NV002

và tìm tên nhân viên.

Ta có:

=INDEX(B2:B4,MATCH(F2,A2:A4,0))

Phân tích

Phần:

MATCH(F2,A2:A4,0)

tìm vị trí của NV002.

Kết quả:

2

Sau đó:

INDEX(B2:B4,2)

trả về:

Trần Bình

INDEX + MATCH tìm dữ liệu bên trái

Đây là ưu điểm quan trọng.

Ví dụ:

Họ tênMã NV
Nguyễn AnNV001
Trần BìnhNV002
Lê CườngNV003

Muốn tìm tên dựa trên Mã NV:

=INDEX(A2:A4,MATCH(E2,B2:B4,0))

Trong đó:

  • MATCH tìm mã NV ở cột B.

  • INDEX trả về tên ở cột A.


62. Tra cứu nhiều điều kiện

Trong thực tế, đôi khi một giá trị không đủ để xác định dữ liệu.

Ví dụ:

Sản phẩmKhu vựcGiá
LaptopHCM15000000
LaptopHà Nội15500000
Máy inHCM5000000

Nếu chỉ tìm:

Laptop

thì có hai kết quả.

Cần tìm theo:

Sản phẩm = Laptop
Khu vực = Hà Nội

Với Excel hiện đại, có thể sử dụng XLOOKUP kết hợp nhiều điều kiện.

Ví dụ:

=XLOOKUP(
    1,
    (A2:A4="Laptop")*(B2:B4="Hà Nội"),
    C2:C4
)

Kết quả:

15500000

63. Xử lý lỗi khi tra cứu

Khi không tìm thấy dữ liệu, các hàm tra cứu có thể trả về:

#N/A

Ví dụ:

=XLOOKUP("SP999",A2:A4,B2:B4)

Nếu SP999 không tồn tại, Excel có thể báo lỗi.

Với XLOOKUP, có thể xử lý trực tiếp:

=XLOOKUP(
    "SP999",
    A2:A4,
    B2:B4,
    "Không tìm thấy"
)

IFERROR

Một cách phổ biến khác là sử dụng:

=IFERROR(công_thức,kết_quả_khi_lỗi)

Ví dụ:

=IFERROR(
    VLOOKUP(E2,A2:C4,2,FALSE),
    "Không tìm thấy"
)

Nếu VLOOKUP bị lỗi:

Không tìm thấy

thay vì:

#N/A

🆚 SO SÁNH CÁC HÀM TRA CỨU

HàmĐặc điểm
VLOOKUPTra cứu theo chiều dọc
HLOOKUPTra cứu theo chiều ngang
XLOOKUPTra cứu hiện đại, linh hoạt
INDEXLấy giá trị theo vị trí
MATCHTìm vị trí
INDEX + MATCHTra cứu linh hoạt
IFERRORXử lý lỗi

⭐ VLOOKUP vs XLOOKUP

Đây là nội dung rất đáng nhớ.

VLOOKUP

=VLOOKUP(E2,A2:C10,3,FALSE)

Có hạn chế:

  • Phải tìm ở cột đầu tiên.

  • Dùng số thứ tự cột.

  • Khó tra cứu sang trái.

XLOOKUP

=XLOOKUP(E2,A2:A10,C2:C10)

Ưu điểm:

  • Chọn riêng vùng tìm kiếm.

  • Chọn riêng vùng trả kết quả.

  • Có thể tìm sang trái.

  • Có thể xử lý trường hợp không tìm thấy.

  • Dễ đọc hơn.


🎯 BÀI THỰC HÀNH PHẦN 7

Bảng 1 — Danh sách sản phẩm

Mã SPTên sản phẩmLoạiĐơn giá
SP001LaptopMáy tính15000000
SP002Máy inThiết bị5000000
SP003Màn hìnhThiết bị4500000
SP004Bàn phímPhụ kiện500000
SP005ChuộtPhụ kiện300000

Tạo một khu vực tra cứu:

Mã SP cần tìmTên sản phẩmĐơn giá
SP003

Yêu cầu 1 — VLOOKUP

Tìm tên sản phẩm:

=VLOOKUP(F2,A2:D6,2,FALSE)

Yêu cầu 2 — VLOOKUP

Tìm đơn giá:

=VLOOKUP(F2,A2:D6,4,FALSE)

Yêu cầu 3 — XLOOKUP

Tìm tên sản phẩm:

=XLOOKUP(F2,A2:A6,B2:B6,"Không tìm thấy")

Yêu cầu 4 — XLOOKUP

Tìm đơn giá:

=XLOOKUP(F2,A2:A6,D2:D6,"Không tìm thấy")

Yêu cầu 5 — MATCH

Tìm vị trí của mã sản phẩm:

=MATCH(F2,A2:A6,0)

Yêu cầu 6 — INDEX

Lấy tên sản phẩm ở vị trí thứ 3:

=INDEX(B2:B6,3)

Kết quả:

Màn hình

Yêu cầu 7 — INDEX + MATCH

Tìm tên sản phẩm dựa trên mã:

=INDEX(B2:B6,MATCH(F2,A2:A6,0))

Yêu cầu 8 — Xử lý lỗi

Nhập:

SP999

Sau đó sử dụng:

=XLOOKUP(F2,A2:A6,B2:B6,"Không tìm thấy sản phẩm")

Kết quả:

Không tìm thấy sản phẩm

🎯 BÀI THỰC HÀNH 2 — TRA CỨU NHÂN VIÊN

Tạo bảng:

Mã NVHọ tênPhòng banChức vụLương
NV001Nguyễn AnKế toánNhân viên15000000
NV002Trần BìnhNhân sựTrưởng phòng22000000
NV003Lê CườngITNhân viên18000000
NV004Phạm HàMarketingNhân viên16000000
NV005Võ NamKinh doanhTrưởng phòng25000000

Tạo ô nhập:

Mã nhân viên:
NV003

Sau đó sử dụng XLOOKUP để tự động trả về:

Họ tên

=XLOOKUP(G2,A2:A6,B2:B6,"Không tìm thấy")

Phòng ban

=XLOOKUP(G2,A2:A6,C2:C6,"Không tìm thấy")

Chức vụ

=XLOOKUP(G2,A2:A6,D2:D6,"Không tìm thấy")

Lương

=XLOOKUP(G2,A2:A6,E2:E6,"Không tìm thấy")

Kết quả sẽ tự động thay đổi khi nhập một mã nhân viên khác.


🧠 KIẾN THỨC MOS CẦN NHỚ

Sau Phần 7, bạn cần nắm chắc:

VLOOKUP

=VLOOKUP(giá_trị,bảng,cột,FALSE)

HLOOKUP

=HLOOKUP(giá_trị,bảng,hàng,FALSE)

XLOOKUP

=XLOOKUP(giá_trị,vùng_tìm,vùng_trả_kết_quả)

INDEX

=INDEX(vùng,vị_trí)

MATCH

=MATCH(giá_trị,vùng,0)

INDEX + MATCH

=INDEX(vùng_trả_kết_quả,MATCH(giá_trị,vùng_tìm,0))

Xử lý lỗi

=IFERROR(công_thức,"Không tìm thấy")

🎯 Mục tiêu của Phần 7: Khi có một mã sản phẩm, mã nhân viên hoặc mã dữ liệu, bạn phải biết cách để Excel tự động tìm và trả về thông tin tương ứng thay vì nhập thủ công.

Đặc biệt: Hãy luyện thật kỹ VLOOKUP, XLOOKUP, INDEXMATCH. Đây là nhóm hàm nền tảng cho việc tra cứu dữ liệu trong Excel.

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS