Vì sao hàm Hlookup cho kết quả không đúng?

Liên hệ QC

pns56

Thành viên chính thức
Tham gia
27/7/10
Bài viết
83
Được thích
18
Nghề nghiệp
GV trường THCN
Kính gửi diễn đàn, tôi sử dụng hàm Hlookup theo như file đính kèm, nhưng có một số trường hợp hàm này cho kết quả không đúng, vậy xin nhờ diễn đàn cho ý kiến giải thích, và với data ở phía đầu trang muốn cho kết quả đúng ta phải làm sao? Chỉnh sửa công thức như thế nào? Cám ơn!
 

File đính kèm

  • HOI HLOOKUP.rar
    6.5 KB · Đọc: 34
Bạn chưa nắm rõ cấu trúc hàm HLOOKUP (tôi nghĩ VLOOKUP cũng vậy). Bạn tham khảo Hàm HLOOKUP thêm:
Hàm HLOOKUP
Chức năng: Hàm HLOOKUP là hàm dò tìm theo dòng, sẽ trả về giá trị của một ô nằm trên một dòng nào đó nếu thỏa mãn điều kiện dò tìm.

Cú pháp hàm: HLOOKUP(lookup_value,table_array,row_index_num,option_lookup)

- Lookup_value: là giá trị dùng để dò tìm, giá trị này sẽ được dò tìm trong dòng đầu tiên của bảng dữ liệu dò tìm. Giá trị dò tìm có thể là một số, một chuỗi, một công thức trả về giá trị hay một tham chiếu đến một ô nào đó dùng làm giá trị dò tìm.

- Table_array: là bảng dùng để dò tìm, bảng dò tìm có thể là tham chiếu đến một vùng nào đó hay Name trả về vùng dò tìm. Bảng dò tìm gồm có Rj hàng và Ci cột (I,j >=1), trong đó dòng thứ nhất của bảng dò tìm sẽ được dùng để dò tìm.

- Row_index_num: là số thứ tự của dòng (tính từ trên xuống dưới) trong bảng dò tìm chứa giá trị mà ta muốn trả về. Row_index_num phải >=1 và <= số dòng lớn nhất có trong bảng dò tìm, ngược lại hàm sẽ trả về #VALUE! hoặc #REF.

- Option_lookup: là tùy chọn xác định kiểu dò tìm, có 2 kiểu dò tìm:

  • True hoặc 1 hoặc để trống: là kiểu dò tìm tương đối, hàm sẽ lấy giá trị đầu tiên mà nó tìm được trên dòng đầu tiên trong bảng dò tìm. Trong trường hợp tìm không thấy, nó sẽ lấy giá trị lớn nhất mà có giá trị nhỏ hơn giá trị dò tìm.
  • False hoặc 0: là kiểu dò tìm chính xác, hàm sẽ lấy giá trị đầu tiên mà nó tìm được trên dòng đầu tiên trong bảng dò tìm. Trong trường hợp tìm không thấy, hàm sẽ trả về #N/A.
 
Kính gửi diễn đàn, tôi sử dụng hàm Hlookup theo như file đính kèm, nhưng có một số trường hợp hàm này cho kết quả không đúng, vậy xin nhờ diễn đàn cho ý kiến giải thích, và với data ở phía đầu trang muốn cho kết quả đúng ta phải làm sao? Chỉnh sửa công thức như thế nào? Cám ơn!

Với cách bố trí dữ liệu như file của bạn thì VLOOKUP hay HLOOKUP đều không thể dùng được
Thậm chí là tôi cũng không nghĩ ra được hàm nào đáp ứng nhu cầu của bạn
 
Cám ơn các bạn đã trả lời, mình không rành lắm về tin học nên vất vả trong tự học , amateur mà, ACE thông cảm mà giúp đỡ mình nhiệt tình hơn nhé. Cám ơn các bạn leonguyenz, NDU và Vu_tuan_manh_linh đã cho ý kiến. Cám ơn bạn Linh đã giới thiệu công thức áp dụng và đã giải quyết khó khăn cho trường hợp mình nêu ra và đúng yêu cầu, Xin cho hỏi thêm ý nghĩa công thức, ví dụ tại Cell G41, bạn Linh đã giúp xin giúp cho trót để mình học hỏi thêm. Mình cũng phát hiện ra nếu cùng 1 buổi, một ngày, có 2 môn học ở 2 phòng thì công thức trên cũng cho kết quả xuất hiện ở cả 2 phòng và ngược lại. Mong các bạn cho ý kiến thêm. Thanks.
 
Cám ơn các bạn đã trả lời, mình không rành lắm về tin học nên vất vả trong tự học , amateur mà, ACE thông cảm mà giúp đỡ mình nhiệt tình hơn nhé. Cám ơn các bạn leonguyenz, NDU và Vu_tuan_manh_linh đã cho ý kiến. Cám ơn bạn Linh đã giới thiệu công thức áp dụng và đã giải quyết khó khăn cho trường hợp mình nêu ra và đúng yêu cầu, Xin cho hỏi thêm ý nghĩa công thức, ví dụ tại Cell G41, bạn Linh đã giúp xin giúp cho trót để mình học hỏi thêm. Mình cũng phát hiện ra nếu cùng 1 buổi, một ngày, có 2 môn học ở 2 phòng thì công thức trên cũng cho kết quả xuất hiện ở cả 2 phòng và ngược lại. Mong các bạn cho ý kiến thêm. Thanks.
Ý nghĩa công thức tư duy như sau: Nếu đếm tên phòng trong mảng cho giá trị lớn hơn 0 (nghĩa là phòng đó được đánh dấu) thì trả về kết quả là tên phòng đó. Để có được mảng tìm kiếm của hàm đếm điều kiện countif() thì cần dùng hàm indirect() đế tạo địa chỉ cho mảng (vì mảng có cột cố định nhưng dòng thay đổi theo thứ). Để liên hệ giữa chỉ số dòng và chỉ số cột thì cái đoạn (column()-6)*2 và (Column()-6)*2+1 sẽ cho ra chỉ số dòng tương ứng với chỉ số cột hiện tại của cell.
 
Web KT
Back
Top Bottom