Hỏi cách sửa lỗi lệnh Index và Match

Liên hệ QC

rinkitori90

Thành viên mới
Tham gia
20/4/21
Bài viết
6
Được thích
4
Các anh chị cho e hỏi lệnh này của em bị sai hay thiếu gì mà nó trả về "N/A" và "REF" ạ? --)(:

=INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0))

em muốn tìm giá trị "Điểm trừ" và "Điểm thưởng" từ sheet data base và lắp vào sheet Chi nhánh 1, dựa theo ngày và tên nhân viên.
Nếu có công thức nào tốt hơn mong các anh chị chỉ giúp, file mẫu e xoá bớt thông tin để bên dưới ạ, cám ơn anh,chị!
 

File đính kèm

  • de xuat.xls
    180.5 KB · Đọc: 7
Các anh chị cho e hỏi lệnh này của em bị sai hay thiếu gì mà nó trả về "N/A" và "REF" ạ? --)(:

=INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0))

em muốn tìm giá trị "Điểm trừ" và "Điểm thưởng" từ sheet data base và lắp vào sheet Chi nhánh 1, dựa theo ngày và tên nhân viên.
Nếu có công thức nào tốt hơn mong các anh chị chỉ giúp, file mẫu e xoá bớt thông tin để bên dưới ạ, cám ơn anh,chị!
Chưa tải file về xem nhưng thấy có vấn đề về hàm Match bạn dùng:

INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0)
Chỗ này"'CN1'!$N$4:$O$4" phải là 1 giá trị cụ thể, không phải mảng. Trừ khi bạn sử dụng công thức mảng test thử xem
Bài đã được tự động gộp:

Các anh chị cho e hỏi lệnh này của em bị sai hay thiếu gì mà nó trả về "N/A" và "REF" ạ? --)(:

=INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0))

em muốn tìm giá trị "Điểm trừ" và "Điểm thưởng" từ sheet data base và lắp vào sheet Chi nhánh 1, dựa theo ngày và tên nhân viên.
Nếu có công thức nào tốt hơn mong các anh chị chỉ giúp, file mẫu e xoá bớt thông tin để bên dưới ạ, cám ơn anh,chị!


1619069488105.png

Sao bạn không dùng hàm Lookup nhỉ :
tôi ví dụ:
Mã:
=LOOKUP(2,1/(Database!B:B=B6)/(Database!D:D=M4:N4),Database!F:F)
 
Lần chỉnh sửa cuối:
Chưa tải file về xem nhưng thấy có vấn đề về hàm Match bạn dùng:

INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0)
Chỗ này"'CN1'!$N$4:$O$4" phải là 1 giá trị cụ thể, không phải mảng. Trừ khi bạn sử dụng công thức mảng test thử xem
Bài đã được tự động gộp:




View attachment 257500

Sao bạn không dùng hàm Lookup nhỉ :
tôi ví dụ:
Mã:
=LOOKUP(2,1/(Database!B:B=B6)/(Database!D:D=M4:N4),Database!F:F)
em cóp dòng lệnh của anh vào file nó lại báo lỗi "there is a problem in this fomula..." ạ? e chưa dùng lệnh lookup bao giờ nền a giải thích cho e đoạn (2,1 là gì được không? :D
 
em cóp dòng lệnh của anh vào file nó lại báo lỗi "there is a problem in this fomula..." ạ? e chưa dùng lệnh lookup bao giờ nền a giải thích cho e đoạn (2,1 là gì được không? :D
Bạn sử dụng Index Match như bạn đã viết cũng được nhưng vấn đề bạn gặp là như bạn @hungpecc1 nói: trong hàm Match thì tham số đầu tiên là "giá trị cần tìm vị trí" chứ không phải 1 dãy hay 1 mảng. Bạn bị vướng 1 cái nữa là Dòng 4 ngày tháng bạn Merge Cells á, nên khi bạn chọn vào để Match thì nó sẽ bị như thế.
Bạn xem file mình sửa lại tí để tham khảo và làm tiếp theo nhé.

Còn vụ 2, 1 tính sau. Đó là mẹo so điều kiện trong hàm Lookup á bạn. Bạn ấy có nói là ví dụ thôi, vì chưa tải file về xem nên viết hạo hạo ấy mà.
 

File đính kèm

  • de xuat.xls
    180.5 KB · Đọc: 6
Bạn sử dụng Index Match như bạn đã viết cũng được nhưng vấn đề bạn gặp là như bạn @hungpecc1 nói: trong hàm Match thì tham số đầu tiên là "giá trị cần tìm vị trí" chứ không phải 1 dãy hay 1 mảng. Bạn bị vướng 1 cái nữa là Dòng 4 ngày tháng bạn Merge Cells á, nên khi bạn chọn vào để Match thì nó sẽ bị như thế.
Bạn xem file mình sửa lại tí để tham khảo và làm tiếp theo nhé.

Còn vụ 2, 1 tính sau. Đó là mẹo so điều kiện trong hàm Lookup á bạn. Bạn ấy có nói là ví dụ thôi, vì chưa tải file về xem nên viết hạo hạo ấy mà.
=INDEX(Database!$F:$F,MATCH(O$4,Database!$D:$D,0),MATCH(B7,Database!$B$2:$B$19,0))

Em thử viết 1 code giống y như anh mà sao nó lại báo #REF ạ? e ngồi so từng dòng mà không biết sai ở đâu, phiền anh chỉ thêm cho em với ạ :confused: file e viết viêt thử đính kèmở dưới
 

File đính kèm

  • de xuat.xls
    180.5 KB · Đọc: 4
=INDEX(Database!$F:$F,MATCH(O$4,Database!$D:$D,0),MATCH(B7,Database!$B$2:$B$19,0))

Em thử viết 1 code giống y như anh mà sao nó lại báo #REF ạ? e ngồi so từng dòng mà không biết sai ở đâu, phiền anh chỉ thêm cho em với ạ :confused: file e viết viêt thử đính kèmở dưới
Bài này hình như không dùng Index với Match được rồi. (hoặc là ngoài khả năng mình)
Vì giá trị tìm kiếm trong hàm Match từ dữ liệu của bạn có nhiều dữ liệu trùng á, Match tương đối nên không dò ra vị trí chính xác.
Để mình làm Lookup thử nhé. Đợi mình xíu.
Bài đã được tự động gộp:

@rinkitori90 : đây bạn tham khảo file mình làm xong Chi nhánh 1 nè. Dùng Lookup như bài #2 hướng dẫn. :)
Bạn muốn những ô không có dữ liệu thì không hiện lỗi N/A thì cứ thêm Iferror vào đầu công thức là được nhé.
 

File đính kèm

  • de xuat (1).xls
    183.5 KB · Đọc: 5
Lần chỉnh sửa cuối:
Bài này hình như không dùng Index với Match được rồi. (hoặc là ngoài khả năng mình)
Vì giá trị tìm kiếm trong hàm Match từ dữ liệu của bạn có nhiều dữ liệu trùng á, Match tương đối nên không dò ra vị trí chính xác.
Để mình làm Lookup thử nhé. Đợi mình xíu.
Bài đã được tự động gộp:

@rinkitori90 : đây bạn tham khảo file mình làm xong Chi nhánh 1 nè. Dùng Lookup như bài #2 hướng dẫn. :)
Bạn muốn những ô không có dữ liệu thì không hiện lỗi N/A thì cứ thêm Iferror vào đầu công thức là được nhé.
cám ơn anh(chị) nhiều, em thử sang bảng 2 được rồi ạ, em dùng công thức như anh(chị) dùng thêm IFERROR để cho về khoảng trắng:
=IFERROR(LOOKUP(2,1/(Database!$B$2:$B$20='CN1'!$B9)/(Database!$D$2:$D$20='CN1'!N$4),IF(N$5=Database!$E$1,Database!$E$2:$E$20,Database!$F$2:$F$20)),"")

Nếu được xin anh (chị) giải thích kĩ hơn cho em việc thêm cột F ở lệnh trên để đối chiếu hay làm gì ạ?
IF(N$5=Database!$E$1,Database!$E$2:$E$20,Database!$F$2:$F$20))
 
Nếu được xin anh (chị) giải thích kĩ hơn cho em việc thêm cột F ở lệnh trên để đối chiếu hay làm gì ạ?
IF(N$5=Database!$E$1,Database!$E$2:$E$20,Database!$F$2:$F$20))
Nguyên đoạn If là đối số cuối cùng trong hàm Lookup á bạn, là vùng trả về kết quả. Mình đặt If là để xét cột tham chiếu là cột Điểm thưởng hay cột Điểm trừ thôi chứ không có gì, hi.
Cũng nhờ bài của bạn mình mới viết được cái hàm như thế, học thêm được ít kiến thức bổ ích nữa. Cảm ơn bạn luôn thể.

Bạn tìm hiểu hàm Lookup đi, hay lắm.
 
Các anh chị cho e hỏi lệnh này của em bị sai hay thiếu gì mà nó trả về "N/A" và "REF" ạ? --)(:

=INDEX(Database!$F:$F;MATCH('CN1'!$N$4:$O$4;Database!$D:$D;0);MATCH('CN1'!$B$6:$B$9;Database!$B$2:$B$18;0))

em muốn tìm giá trị "Điểm trừ" và "Điểm thưởng" từ sheet data base và lắp vào sheet Chi nhánh 1, dựa theo ngày và tên nhân viên.
Nếu có công thức nào tốt hơn mong các anh chị chỉ giúp, file mẫu e xoá bớt thông tin để bên dưới ạ, cám ơn anh,chị!
Mã:
N6 =IFERROR(LOOKUP(2,1/(M$4+N$4=Database!$D$2:$D$18)/($B6=Database!$B$2:$B$18)/($A$2=Database!$C$2:$C$18),INDEX(Database!$E$2:$F$18,,1+(N$4=""))),"")
Copy cho cácô còn lại và các sheet tương tự
 

File đính kèm

  • de xuat.xls
    187 KB · Đọc: 4
Web KT
Back
Top Bottom