- Series: “Làm trùm” VLOOKUP – Phần 1: Cơ bản về VLOOKUP
- Series: “Làm trùm” VLOOKUP – Phần 2: Thông số [range_lookup] dùng để làm gì?
- Series: “Làm trùm” VLOOKUP – Phần 3: Sử dụng Ký tự đại diện trong VLOOKUP
- Series: “Làm trùm” VLOOKUP – Phần 4: Thay đổi số thứ tự cột tự động trong hàm VLOOKUP
- Series: “Làm trùm” VLOOKUP – Phần 5: Tự mở rộng vùng dữ liệu VLOOKUP khi thêm dữ liệu trong bảng
- Series: “Làm trùm” VLOOKUP – Phần 6: VLOOKUP từ trái sang phải
- Series: “Làm trùm” VLOOKUP – Phần 7: VLOOKUP nhiều điều kiện7 min read
- Series: “Làm trùm” VLOOKUP – Phần 8: VLOOKUP cả dòng và cột
- Series: “Làm trùm” VLOOKUP – Phần 9: Liệt kê giá trị thứ n thỏa điều kiện
- Series: “Làm trùm” VLOOKUP – Phần 10: Liệt kê toàn bộ giá trị thỏa điều kiện
Trong các phần trước của Series: “Làm trùm” VLOOKUP, chúng ta đã cùng tìm hiểu về cách sử dụng VLOOKUP nhưng chỉ có 1 điều kiện. Với Phần 7 của Series: “Làm trùm” VLOOKUP, hãy cùng Coffee Excel tìm hiểu cách VLOOKUP nhiều điều kiện nhé.
Đọc các phần trước của Series: “Làm trùm” VLOOKUP:
• Phần 1: Cơ bản về VLOOKUP
• Phần 2: Thông số [range_lookup] dùng để làm gì?
• Phần 3: Sử dụng ký tự đại diện trong VLOOKUP
• Phần 4: Thay đổi số thứ tự cột tự động trong hàm VLOOKUP
• Phần 5: Tự mở rộng vùng dữ liệu VLOOKUP khi thêm dữ liệu trong bảng
• Phần 6: VLOOKUP từ phải sang trái
Chia sẻ với cả nhà xíu là ngày xưa thì mình sử dụng INDEX kết hợp với MATCH thay cho VLOOKUP nhưng sau đó thì phát hiện ra là không thật sự linh hoạt. Ý tưởng mới của mình là kết hợp hàm VLOOKUP, hàm CHOOSE và công thức mảng.
Kết hợp giữa VLOOKUP và hàm CHOOSE
Chúng ta hãy cùng nhau bắt đầu bằng ví dụ sau, chúng ta có bảng dữ liệu:
Chúng ta thấy, trong bảng dữ liệu của chúng ta có rất nhiều người có First name là Paul nhưng khác Last Name. Chúng ta dựa vào thông tin trong ô F3 và F4 (First Name và Last Name) để trích ra số điện thoại dựa theo bảng dữ liệu tại ô F5.
Ý tưởng là chúng ta cần định nghĩa một bảng mới với 1 cột là Full Name và 1 cột là Telephone Number đại loại như sau:
Full Name | Telephone |
Paul Daniels | 555-9765 |
Jack Daniels | 555-4678 |
Paul Newman | 555-9765 |
Paul McCartney | 555-9867 |
Jeff Daniels | 555-4389 |
Paul Simon | 555-6745 |
Anthony Daniels | 555-7561 |
Để làm được việc này, chúng ta có 2 cách: (1) Tạo ra 1 bảng mới hoặc chèn cột mới như thế này bằng hàm nhưng cách này làm cho dữ liệu của chúng ta trở nên dài dòng hơn nhiều (2) định nghĩa một cột mới cho Excel bằng cách kết hợp hàm VLOOKUP và CHOOSE
Với cách (2) việc sử dụng hàm CHOOSE có thể giúp chúng ta điều đó.
Để thực hiện cách (2). Chúng ta làm theo các bước sau:
1. Nhập công thức sau vào ô F6 (ô cần trả ra kết quả):
= VLOOKUP(F3&” “&F4,CHOOSE({1,2},A2:A8&” “&B2:B8,C2:C8),2,FALSE)
2. Nhấn tổ hợp phím CTRL + SHIFT + ENTER
Lúc này chúng ta sẽ thấy công thức của chúng ta sẽ trở thành
{= VLOOKUP(F3&” “&F4,CHOOSE({1,2},A2:A8&” “&B2:B8,C2:C8),2,FALSE)}
Excel đã tự động thêm 2 dấu “{}” vào công thức của chúng ta, đây gọi là công thức mảng. Bây giờ chúng ta tìm hiểu xem công thức này hoạt động như thế nào nhé.
Ý nghĩa công thức, hàm VLOOKUP, hàm CHOOSE và công thức mảng
Để hiểu công thức trên, chúng ta cùng tìm hiểu các giá trị được nhập và các tham số của hàm VLOOKUP nhé.
Tham số kookup_value
Chúng ta thấy, tham số lookup_value trong hàm VLOOKUP là giá trị được tô đỏ sau:
{= VLOOKUP(F3&” “&F4,CHOOSE({1,2},A2:A8&” “&B2:B8,C2:C8),2,FALSE)}
Giá trị là này sự kết hơp của First Name và Last Name cần tìm kiếm cùng với dấu khoảng trắng “ “ để tạo thành Full Name
Tham số table_array
Tham số table_array trong hàm VLOOKUP là giá trị:
{= VLOOKUP(F3&” “&F4,CHOOSE({1,2},A2:A8&” “&B2:B8,C2:C8),2,FALSE)}
Như bài viết về hàm CHOOSE trước đây, hàm CHOOSE ở đây có tác đụng định nghĩa một bảng/cột/array (Xem Bài viết Series: “Làm trùm” VLOOKUP – Phần 6: VLOOKUP từ phải sang trái).
Lúc này, hàm CHOOSE giúp định nghĩa dữ liệu của chúng ta là 1 bảng/mảng có 2 cột.
(1) Kết hợp giữa cột A (từ A2 đến A8) – tức là cột First Name, dấu “ “, và cột B (từ B2 đến B8) – tức là cột Last Name => Đây chính là cột Full Name của chúng ta cần.
(2) Cột C (từ C2 đến C8) – tức cột Telephone Number
Tham số col_index_num
Tham số col_index_num trả ra số thứ tự cột cần lấy dữ liệu là cột 2 – Telephone Number
Tham số [range_lookup]
Tham số [range_lookup] là FALSE để tìm chính xác và sẽ trả ra #N/A nếu tìm 1 tên không có trong bảng
Như vậy, với các tham số như trên, hàm của chúng ta có ý nghĩa là tìm giá trị
Full name = First Name (F3) + “ “ + Last Name (F4)
trong 1 bảng có 2 cột:
(1) cột có Full name = First Name (A) + “ “ + Last Name (B)
(2) Telephone Number
và trả ra giá trị cột (2) tức là Telephone Number với cách tìm là chính xác (FALSE = Exact Match)
Hàm này tương tự như 1 hàm VLOOKUP bình thường mà chúng ta hay sử dụng.
Lưu ý khi sử dụng công thức mảng
Khi sử dụng công thức mảng theo cách trên thì chúng ta cần lưu ý 1 số điều sau:
– Khi cần sửa công thức, chúng ta cũng cần nhấn tổ hợp phím CTRL + SHIFT + ENTER sau khi hoàn tất như khi viết hàm
– Công thức mảng là công thức có tốc độ tính toán chậm nhất trong Excel nên. Nên hãy tìm cách khác để làm trước khi sử dụng công thức mảng. Chúng ta hãy xem công thức mảng là phương án cuối cùng, khi không còn giải pháp nào khác
Như vậy, qua bài viết, chúng ta đã biết cách VLOOKUP nhiều điều kiện. Hãy cùng Coffee Excel đón đọc phần tiếp theo của Series bài viết “Làm trùm” VLOOKUP – Phần 8: VLOOKUP cả dòng và cột nhé cả nhà.
Nguồn: Excel off the Grid
Dịch và Hiệu đính: Coffee Excel