1. PHẦN BÀI GIẢNG HÀM DÒ TÌM DƯỚI DẠNG WORD
3.2.6. Các hàm dò tìm và tham chiếu
Các ví dụ minh hoạ
Ví dụ 1:
Cho bảng lương của một đơn vị.
Tính cột tiền lĩnh theo công thức:
Tiền lĩnh = Số công x Mức lương ngày của loại tương ứng
Mức lương ngày của từng loại đối tượng được cho ở bảng phụ bên cạnh, nó có thể bố
trí như ở bảng phụ bên trên (Loại các đối tượng được để theo cột), hoặc như bảng phụ bên
dưới (Loại các đối tượng được để theo dòng).
A B C D E F G H
4 ML ngày BẢNG LƯƠNG
5 Loại M L Họ tên Loại Số công Tiền lĩnh
6 A 50000 Hoa B 25
7 B 30000 An A 20
8 C 15000 Tùng C 24
9 Hà D 20
10 Mức lương ngày Mạnh C 25
11 Loại A B C Lợi C 25
12 M L 50000 30000 15000 Thuý B 24
13 Minh C 17
14 Chinh A 25
Để tính tiền lĩnh cho một đối tượng nào đó ta phải lấy loại của đối tượng trong bảng
lương dò tìm trong bảng mức lương ngày, khi tìm được ta dóng sang cột bên phải (hoặc
dòng bên dưới) để lấy giá trị mức lương ngày của loại đó đưa vào công thức tính.
Các bảng phụ bên trên được gọi là các bảng dò tìm, trong các bảng này vùng dữ liệu
để dò tìm là A6:B8 (với bảng trên), hay B11:D12 (với bảng dưới).
1
2. Ví dụ 2:
Cho bảng thống kê
4
5
6
7
8
9
10
11
12
13
14
15
16
17
A B C D E F G H
BẢNG THỐNG KÊ Bảng đơn giá các mặt hàng
Mã hàng Số
lượng
Thành
tiền
Loại
Tên hàng
1 2 3
X2 25 X 30000 25000 20000
X1 17 Y 75000 50000 45000
Y2 10 Z 40000 35000 30000
Y1 30 - cột mã hàng ghi mã mặt hàng, mã này gồm 2 ký tự,
X3 32 ký tự đầu ghi ký hiệu tên mặt hàng, ký tự cuối ghi
loại của mặt hàng đó (loại 1, loại 2, loại 3).
Y3 5
Z1 12
Z3 19
Z2 25
Trong bảng thống kê cột mã hàng ghi mã mặt hàng, mã này gồm 2 ký tự, ký tự đầu ghi
ký hiệu tên mặt hàng, ký tự cuối ghi loại của mặt hàng đó (loại 1, loại 2, loại 3). Cột thành
tiền được tính theo công thức:
Thành tiền = Số lượng x Đơn giá mặt hàng
đơn giá từng mặt hàng được cho ở bảng đơn giá các mặt hàng (bên cạnh).
Khi tính thành tiền cho mặt hàng nào đó ta phải lấy mã hàng rồi tìm trong bảng đơn
giá xem mặt hàng đó đơn giá bao nhiêu rồi tính, ở đây bảng đơn giá các mặt hàng được gọi
là bảng dò tìm.
Trong Excel có thể có một số trường hợp bảng biểu khi tính toán cần căn cứ vào một
bảng dữ liệu phụ nào đó, bên bảng dữ liệu chính có tổ chức một cột ghi mã (hay loại) của
đối tượng, bên bảng phụ ghi giá trị tương ứng của các mã (loại) đối tượng. Khi tính toán ta
phải lấy mã (loại) của đối tượng trong bảng chính dò tìm trong bảng phụ để xem với mã
(loại) đó thì tương ứng với giá trị gì để lấy ra tính. Giá trị mã (loại) của đối tượng lấy ra để
dò tìm trong bảng phụ được gọi là giá trị mang dò, bảng phụ được gọi là bảng dò tìm.
Nếu trong bảng dò tìm giá trị mã (loại) của đối tượng được để theo cột thì cột này
được gọi là cột dò tìm, còn các cột khác ghi giá trị tương ứng của các mã (loại) được gọi là
cột tham chiếu.
Tương tự, nếu trong bảng dò tìm giá trị mã (loại) của đối tượng được để theo dòng thì
dòng này được gọi là dòng dò tìm, còn các dòng khác ghi giá trị tương ứng của các mã (loại)
được gọi là dòng tham chiếu.
2
3. a. Hàm dò tìm, tham chiếu theo cột VLOOKUP
Cú pháp: VLOOKUP(x, Bảng dò tìm, N, Cách dò)
Trong đó x là giá trị mang dò tìm.
Trong bảng dò tìm của hàm VLOOKUP thì cột đầu tiên là cột dò tìm.
N là số nguyên dương chỉ số thứ tự cột tham chiếu trong bảng dò tìm (cột mà hàm sẽ
dóng sang để lấy giá trị khi tìm được giá trị x trên cột dò tìm).
Cách dò có hai giá trị 0, hoặc 1 (ngầm định là 1).
Nếu cách dò là 1 thì trong bảng dò tìm, cột dò tìm phải được sắp xếp theo trật tự tăng
dần. Trong trường hợp này, nếu giá trị x tìm được trên cột dò tìm thì dóng sang cột N lấy
giá trị tương ứng làm giá trị của hàm, nếu giá trị x không tìm được trên cột dò tìm thì lấy giá
trị tương ứng trên cột thứ N của mã (loại) trên cột dò tìm có giá trị nhỏ hơn x mà gần x nhất
làm giá trị của hàm, còn nếu x nhỏ hơn giá trị mã (loại) đầu tiên trên cột dò tìm được sắp
này (không có giá nhỏ hơn gần x trên cột dò tìm) thì hàm sẽ cho giá trị #N/A (Not available
- Giá trị không phân bố trong bảng).
Nếu cách dò là 0 thì giá trị mã (loại) trên cột dò tìm không cần phải sắp xếp và khi dò
tìm, nếu tìm được giá trị x trên cột dò tìm, thì dóng sang cột thứ N của bảng dò tìm để lấy
giá trị làm giá trị của hàm, còn nếu không tìm được giá trị x trên cột dò tìm hàm sẽ cho giá
trị #N/A.
Chức năng: Hàm tìm giá trị x trong cột đầu tiên của bảng dò tìm, nếu tìm được thì
dóng sang cột thứ N của bảng dò tìm để lấy giá trị.
Ví dụ: Với bảng lương cho ở ví dụ 1 bên trên và dùng bảng dò tìm thứ nhất (A6:B8)
khi đó công thức tính tiền lĩnh cho đối tượng đầu tiên là
H6 = G6*Vlookup(F6, A$6:B$8, 2, 0)
trong công thức này bảng dò tìm A$6:B$8 ta đưa vào dưới dạng địa chỉ tuyệt đối là để khi
sao chép công thức xuống cho các đối tượng bên dưới thì địa chỉ bảng này không bị thay
đổi, đảm bảo các đối tượng bên dưới cũng lấy mã loại của mình mà dò tìm trong bảng này.
Trong công thức trên do cách dò là 0 do đó với đối tượng có mã loại D máy sẽ trả lại
giá trị #N/A, nếu ta đưa vào công thức với cách dò là 1
H6 = G6*Vlookup(F6, A$6:B$8, 2, 1)
thì với đối tượng mã loại D, máy sẽ lấy mức lương ngày của đối tượng mã loại C tính cho
đối tượng mã loại D này.
A B C D E F G H
4 ML ngày BẢNG LƯƠNG
5 Loại M L Họ tên Loại Số
công
Tiền lĩnh
6 A 50000 Hoa B 25
7 B 30000 An A 20
8 C 15000 Tùng C 24
9 Hà D 20
3
4. 10 Mức lương ngày Mạnh C 25
11 Loại A B C Lợi C 25
12 M L 50000 30000 15000 Thuý B 24
13 Minh C 17
14 Chinh A 25
b. Hàm dò tìm, tham chiếu theo dòng HLOOKUP
Hàm này dùng tương tự như hàm VLOOKUP, nhưng trong bảng dò tìm thì mã (loại)
của các đối tượng được để ở dòng đầu tiên, các dòng khác ghi giá trị tương ứng.
Cú pháp: HLOOKUP(x, Bảng dò tìm, N, Cách dò)
Trong đó x là giá trị mang dò tìm.
Trong bảng dò tìm của hàm HLOOKUP thì dòng đầu tiên là dòng dò tìm.
N là số nguyên dương chỉ số thứ tự dòng tham chiếu trong bảng dò tìm (dòng mà hàm
sẽ dóng xuống để lấy giá trị khi tìm được giá trị x trên dòng dò tìm).
Cách dò có hai giá trị 0, hoặc 1 (ngầm định là 1), cách dò này cũng tương tự cách dò
của hàm VLOOKUP.
Chức năng: Hàm tìm giá trị x trong dòng đầu tiên của bảng dò tìm, nếu tìm được thì
dóng xuống dòng thứ N của bảng dò tìm để lấy giá trị.
Ví dụ: Với bảng lương cho ở ví dụ 1 bên trên và dùng bảng dò tìm thứ hai (B11:D12),
nếu ta muốn tính tiền lĩnh cho các đối tượng có mã loại trong bảng dò tìm (loại A, B, C),
còn đối tượng loại D không tính, thì ta đưa công thức tính tiền lĩnh cho đối tượng đầu tiên là
H6 = G6*Vlookup(F6, B$11:D$12, 2, 1)
c. Hàm xác định vị trí MATCH
Cú pháp: MATCH(x, Bảng dò tìm, Cách dò)
Trong đó x là giá trị mang dò tìm.
Bảng dò tìm của hàm MATCH được tổ chức dưới dạng là một dòng hay một cột.
Cách dò của hàm MATCH cũng có hai giá trị 0 hoặc 1, ý nghĩa giá trị cách dò ở đây
cũng giống cách dò của hàm VLOOKUP hay HLOOKUP.
Chức năng: Hàm cho biết thứ tự vị trí của giá trị x trong bảng dò tìm.
Ví dụ: Trong ví dụ 2 cho bên trên, để biết mặt hàng Z nằm ở vị trí thứ mấy trong danh
sách tên mặt hàng (X, Y, Z) ở bảng phụ đơn giá các mặt hàng ta dùng MATCH(“Z”, E6:E8,
0), kết quả sẽ là 3.
d. Hàm dò tìm, tham chiếu theo dòng và cột INDEX
Cú pháp: INDEX(Bảng dò tìm, N, M)
Trong đó N là số thứ tự chỉ dòng, M là số thứ tự chỉ cột của bảng dò tìm.
Chức năng: Hàm lấy giá trị nằm trên dòng thứ N cột thứ M của bảng dò tìm.
Ví dụ: Trong ví dụ 2 cho bên trên, để tính Thành tiền cho mặt hàng nào đó ta phải xem
mã mặt hàng là gì. Trong bảng đơn giá các mặt hàng thì ký tự đầu của mã (ghi tên mặt
hàng) nằm ở dòng thứ mấy trong cột tên hàng, ký tự cuối của mã (ghi loại các mặt hàng)
nằm trên cột thứ mấy của dòng loại, rồi theo dòng, cột đó ta dóng vào lấy đơn giá mặt hàng
4
5. đó để tính.
Chẳng hạn để tính thành tiền cho mặt hàng đầu tiên với mã hàng nằm ở ô A6, ta dùng
hàm Left(A6,1) lấy ký tự đầu tiên của mã để xem ký hiệu tên của mặt hàng là gì, rồi dùng
Match(Left(A6,1), E6:E8, 0) để xem ký hiệu tên đó nằm trên dòng thứ mấy của cột tên
hàng.
A B C D E F G H
4 BẢNG THỐNG KÊ BẢNG ĐƠN GIÁ CÁC MẶT HÀNG
5 Mã
hàng
Số
lượng
Thành
tiền
Loại
Tên hàng
1 2 3
6 X2 25 X 30000 25000 20000
7 X1 17 Y 75000 50000 45000
8 Y2 10 Z 40000 35000 30000
9 Y1 30
10 X3 32
11 Y3 5
12 Z1 12
13 Z3 19
14 Z2 25
Tương tự ta dùng hàm Right(A6,1) để lấy ký tự cuối xem loại của mặt hàng đó rồi
dùng hàm Match để xem loại đó nằm trên cột thứ mấy của dòng loại. Nhưng vì kết quả của
hàm Right là dưới dạng xâu ký tự nên Right(A6,1) được xâu “2”, trong khi đó các loại 1, 2,
3 ở dòng loại trong bảng đơn giá cho dưới dạng số nên ta phải đưa nó về cùng một dạng dữ
liệu (hoặc cùng là xâu, hoặc cùng là số) thì máy mới có thể làm việc được, ở đây ta đưa về
cùng dạng số, ta dùng hàm Value(Right(A6,1)) để đổi xâu “2” thành số 2.
Dùng Match(Value(Right(A6,1)),F5:H5,1) để xem loại của mặt hàng này nằm ở cột
thứ mấy của dòng loại.
Sau cùng là dùng hàm Index chiếu theo số hiệu dòng, cột được tính bởi hai hàm Match
bên trên để dóng vào mà lấy giá trị đơn giá
=Index(F6:H8,Match(Left(A6,1),E6:E8,1),Match(Value(Right(A6,1)),
F5:H5,1)).
Để tính thành tiền cho bảng thống kê này ta đưa vào ô C6 công thức:
= Index(F$6:H$8, Match(Left(A6,1), E$6:E$8,1), Match(Value(Right(A6,1)),
F$5:H$5,1)) * B6; (cách dò trong
công thức lấy giá trị 1 vì: X, Y, Z là có xếp thứ theo α β; )
Ta cũng có thể dùng hàm If kết hợp với các hàm Left, Right, Value, Hlookup hay
Vlookup để tính, cụ thể như sau:
5
Giá trị tại ô E6 được là
ký tự đầu tiên của A6,
=left(A6,1)
Giá trị tại ô F5 được là ký
tự cuối cùng của A6,
=Value(Right(A6,1))