Giả sử chúng ta có dữ liệu tại cột A, và các câu hỏi đặt ra, làm thế nào dùng hàm để tìm thấy dòng cuối cùng trong cột, hoặc làm thế nào để tìm ô cuối cùng có chứa chữ, hoặc tìm ô cuối cùng là số. Bạn có thể xem qua bảng minh họa bên dưới. Sau đó, chúng ta cùng tìm hiểu rõ hơn về từng phần nhé.
-
Ứng dụng của hàm LOOKUP như thế nào?
- LOOKUP(2,1/(A:A<>””),A:A). Vì sao lại tìm số 2, và 1/(A:A<>””) là gì?
Giá trị tìm kiếm (lookup_value) là: 2, tại sao lại có số 2? Đơn giản vì số 2 hoặc bất kỳ số nào lớn hơn 1 đều được. Bạn sẽ hiểu hơn ở giải thích tiếp theo.
Vùng tìm kiếm, 1/(A:A<>””): Ở đây chúng ta thấy biểu thức logic (A:A<>””), kết quả này sẽ trả về TRUE hoặc FALSE. Tiếp theo ta lấy 1 chia cho kết quả tìm thấy, 1/TRUE = 1, 1/FALSE=1/0 => #DIV/0. Vì vậy trong mảng vùng tìm kiếm lúc này chỉ có 2 giá trị 1 và DIV/0. Và khi đó, LOOKUP sẽ tìm theo giá trị lớn hơn 1, sẽ trả về giá trị tương ứng cuối được tìm thấy vùng tìm kiếm.
Và cuối cùng, là vùng kết quả trả về, bạn có thể lấy kết quả là giá trị của ô, hoặc là vị trí của dòng đó với hàm ROW(), hoặc COLUMN() để lấy ra cột, tùy theo ứng dụng của bạn.
Lưu ý: Vùng tìm kiếm và vùng giá trị trả về phải có cùng số dòng, ví dụ: A1:A100, thì vùng kết quả cũng phải tương tự B1:B100.
Để tìm hiểu rõ hơn, xem xét chi tiết hàm hoạt động, chúng ta có công cụ Evaluate Formula nằm trong tab Formulas.
- Tại sao lại tìm “ZZZZZ”? Nó đại diện cho cái gì? Có ai đó đang ngủ gục, và ngáy chăng?
Rất đơn giản, nó đại diện cho các ký tự là chữ. Kết quả sẽ tìm đến các ô có chứa chữ. Nếu có cả chữ và số trong ô thì thế nào? Dĩ nhiên sẽ vẫn tìm đến, vì ô có chứa chữ mà.
-
- Tại sao lại có số 9.999E+307? Làm sao mà Tiểu đoàn 307 rồi vàng 4 số 9, lại có mặt ở trong Excel?
9.999E+307, thực ra là số lớn nhất (largest number) trong Excel bạn có thể nhập vào trong ô. Bạn có thể tham khảo thêm Các đặc tả và giới hạn trong Excel.
-
- LOOKUP còn có thể làm gì khác?
Bạn có thể xem ví dụ minh họa bên dưới, chúng ta có thể viết hàm IF lồng vào nhau cho các điều kiện tương ứng. Tuy nhiên, chúng ta có thể làm đơn giản hơn, là lập bảng tham chiếu, hoặc viết hẳn trong hàm như bên dưới để tìm kiếm.
Còn gì hay ho hơn? Bạn có biết LOOKUP có thể dò tìm theo nhiều điều kiện không? Trong ví dụ, chúng ta có 2 bạn cùng tên: Nguyễn A, ở 2 phòng ban và địa chỉ khác nhau. Chúng ta tìm ra được địa chỉ không? Dĩ nhiên là có.
Dùng LOOKUP để tách địa danh, tên tỉnh thành quận huyện ra khỏi chuỗi:
- Bạn lập danh sách vị trí sẽ tìm kiếm (thả neo), ở đây với việc tách Tỉnh thành, bạn sẽ có các trường hợp: “tỉnh”, “Tp. Hồ Chí Minh”, “Thành phố Đà Nẵng”… ta lập ra danh sách có thể xuất hiện ở cột G.
- Tương ứng với việc tách địa danh, bạn lập vị trí thả neo để tìm ra vị trí sau địa chỉ. Lúc này ta có: dấu phẩy, Thành phố thuộc tỉnh, Quận/Huyện/Thị xã, Phường/Xã/Thị trấn, Tổ/Thôn/Xóm… Bạn có thắc mắc sắp xếp của nó không? Mình sắp như vậy để khi LOOKUP tìm kiếm sẽ ưu tiên từ dưới lên, gần với địa danh nhất có thể.
- Và hàm SEARCH lúc này sẽ trả về kết quả tìm kiếm từ các danh sách trên với từng dòng, ví dụ như B2, ta có kết quả sẽ tìm thấy là số. Và LOOKUP sẽ tìm kết quả là số, lỗi sẽ bỏ qua, nếu không tìm thấy sẽ trả về N/A.
Bạn muốn tìm kiếm ở nhiều vùng dữ liệu khác nhau đồng thời, bạn có thể tham khảo công thức sau:
LOOKUP kết hợp với ISNUMBER/SEARCH để dò tìm và từ đó tách ra Tỉnh/Thành, Quận/Huyện, Phường/Xã từ chuỗi địa chỉ cho sẵn.
Dựa theo bảng danh mục tải về từ website Tổng cục Thống kê: http://www.gso.gov.vn/
Lời Kết: Thực tế áp dụng, chúng ta sẽ luôn linh động, các áp dụng cơ bản, chúng ta có thể tìm đến các hàm như VLOOKUP, hoặc HLOOKUP cụ thể hơn. Và điều lưu ý luôn phải nhớ với hàm này, tìm gần đúng nên là khi chúng ta sắp xếp (SORT) thì kết quả có thể thay đổi, nên chúng ta cần xem xét kỹ trước khi áp dụng.
Dưới đây là giới thiệu của Microsoft về LOOKUP, các bạn tham khảo nhé!
Cú pháp
LOOKUP(lookup_value, lookup_vector, [result_vector])
Cú pháp dạng vector của hàm LOOKUP có các tham đối sau đây:
Chú thích
- Nếu hàm LOOKUP không tìm thấy lookup_value, thì nó sẽ so khớp giá trị lớn nhất trong lookup_vector mà giá trị đó nhỏ hơn hoặc bằng lookup_value.
- Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong lookup_vector, thì hàm LOOKUP trả về giá trị lỗi #N/A.