Hàm HLOOKUP trong excel dùng để tìm một giá trị trên hàng (row) đầu tiên của một bảng hoặc một mãng dữ liệu, sau khi tìm thấy thì trả về một giá trị trên cùng cột (column) của hàng/dòng dữ liệu được chỉ định trong bảng hoặc mãng dữ liệu.
Quan sát hình bên dưới để rõ hơn, giả sử bạn cần tìm ‘Sản phẩm 2’ trên hàng/dòng thứ 3 (row 3) từ A3 đến D3, nếu tìm thấy ‘Sản phẩm 2’ ở cột B3 thì hàm HLOOKUP() sẽ trả về giá trị 20,000 ngàn đồng trên cùng một cột là B4. Chú ý, hàng/dòng dữ liệu từ A3:D3 thuộc hàng/dòng thứ 3 trong excel nhưng là hàng/dòng đầu tiên trong bảng/mãng dữ liệu A3:D4.
Hình 1: Danh mục giá các sản phẩm đặt ở sheet tên “Giá SP”
Cú pháp HLOOKUP trong excel
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]) |
Trong đó:
-
-
- Chữ H trong hàm HLOOKUP() được viết tắt cho từ “Horizontal” – có nghĩa là chiều ngang
- Lookup_value: là giá trị được tìm tại hàng/dòng tiên trong bảng hoặc mãng dữ liệu. Lookup_value có thể là giá trị, một tham chiếu (B3) hoặc một chuỗi. Ví dụ như là B3
- Table_array: là một bảng/mãng dữ liệu chứa thông tin cần tìm. Ví dụ như là A3:D4
- Giá trị trong hàng/dòng đầu tiên của table_array có thể là chuỗi, số hoặc giá trị logic.
- Nếu range_lookup là TRUE thì giá trị trong hàng/dòng đầu tiên của table_array bắt buộc phải sắp xếp theo thứ tự tăng dần …-3, -2, -1, 0, 1, 2, 3 … A đến Z, FALSE, TRUE; ngược lại hàm HLOOKUP() sẽ cho giá trị sai. Nếu range_lookup là FALSE thì table_array không cần sắp xếp.
- Không phân biệt chữ viết hoa hay thường
- Sắp xếp dữ liệu tăng dần từ trái qua phải.
-
- Row_index_num: là thứ tự hàng/dòng trong table_array mà dữ liệu sẽ trả về nếu thỏa điều kiện tìm. Hàng/dòng đầu tiên được đánh số 1, hàng /dòng thứ hai sẽ đánh số 2, và cứ thế đánh số hết các hàng/dòng trong table_array. Nếu giá trị của row_index_num nhỏ hơn 1 thì hàm HLOOKUP() sẽ trả về giá trị lỗi là #VALUE!, nếu row_index_num lớn hơn số hàng/dòng trong table_array thì HLOOKUP() sẽ trả về giá trị lỗi #REF!
- Range_lookup: là một giá trị logic để thiết lập hàm HLOOKUP() tìm giá trị phải bằng với giá trị cần tìm hoặc gần giống giá trị cần tìm. Nếu thiết lập là TRUE hoặc bỏ qua thì hàm HLOOKUP() sẽ tìm theo giá trị gần giống. Nói cách khác, nếu không tìm thấy thì giá trị lớn nhất kế kiếp sẽ và phải nhỏ hơn lookup_value sẽ được trả về. Ngược lại nếu dùng FALSE, hàm HLOOKUP() sẽ tìm theo kiểu giống hoàn toàn, nếu không tìm thấy thì sẽ trả về giá trị lỗi #N/A
-
Ghi chú:
-
-
- Nếu hàm HLOOKUP() không thể tìm thấy lookup_value và range_lookup là TRUE, thì nó sẽ trả về giá trị lớn nhất và giá trị đó phải nhỏ hơn lookup_value.
- Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong table_array thì hàm HLOOKUP() sẽ trả về giá trị lỗi #N/A
- Nếu range_lookup là FALSE và lookup_value là chuỗi bạn có thể tìm kiếm theo kiểu wildcard – nghĩa là tìm kiếm theo một phần nào đó. Bạn có thể dùng dấu chấm hỏi (?) hoặc dấu sao (*) trong lookup_value. Dấu ? thay cho một ký tự, dấu * thay cho nhiều ký tự. Trong trường hợp đặc biệt là bạn muốn tìm dấu ? hoặc dấu * thì bạn phải thêm dấu ngã (~) và trước 2 dấu đó.
-
Ví dụ:
Ở bài viết này dùng MS Excel 2007.
Bước 1: mở MS Excel và tạo dữ liệu như hình 1 và đặt tên sheet là ‘Giá SP’
Bước 2: tạo thêm sheet mới tên ‘Danh Sách SP’ như hình 2
Bước 3: trong cột E của sheet ‘Danh sách SP’ của hình 2 bạn thêm lần lược các công thức như sau:
-
-
- Tại ô E4 công thức như sau
-
-
-
- Tại ô E5 công thức như sau
-
-
-
- Tại ô E6 công thức như sau
-
-
-
- Tại ô E7 công thức như sau
-
-
-
- Tại ô E8 công thức như sau
-
Hình 2: Danh sách sản phẩm sử dụng hàm HLOOKUP()
Kết quả: quan sát hình 2 ở trên bạn sẽ thấy kết quả.
-
-
- Kết quả từ E4 đến E7, kết quả tìm thấy nên trả về giá trị tương ứng ở sheet ‘Giá SP’
- Ô E8, kết quả không tìm thấy và range_value là FALSE nên giá trị trả về là giá trị lỗi !N/A
-
Hàm này rất hữu ít và tiện dụng trong việc tìm kiếm, tính toán trong excel.
Nguồn: Tổng hợp từ Internet.