Tra trong Bảng Kết hợp hàm Index_Match (1 người xem)

  • Thread starter Thread starter 72h.vn
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

72h.vn

Thành viên mới
Tham gia
21/7/12
Bài viết
7
Được thích
1
Trong file đính kèm có câu hỏi mình tô màu vàng. Anh em biết giup mình bài này với nhé!
Câu hỏi dùng hàm Index và Hàm Match để tra đơn giá dựa vào Bảng???
Cảm ơn!
 

File đính kèm

Trong file đính kèm có câu hỏi mình tô màu vàng. Anh em biết giup mình bài này với nhé!
Câu hỏi dùng hàm Index và Hàm Match để tra đơn giá dựa vào Bảng???
Cảm ơn!

Bạn muốn INDEX _MATCH thì đây, công thức cho ô E1:

=INDEX($B$4:$D$7,MATCH(LEFT(A11,3),$A$4:$A$7,0),MATCH(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{10.5,6.5,0.5},0))

Ngắn hơn chút có VLOOKUP_LOOKUP:

=VLOOKUP(LEFT(A11,3),$A$4:$D$7,LOOKUP(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{0.5,6.5,10.5},{4,3,2}),0)

Dài hơn chút thì có VLOOKUP_IF:

=VLOOKUP(LEFT(A11,3),$A$4:$D$7,IF(RIGHT(A11,LEN(A11)-FIND("_",A11))="10.5",2,IF(RIGHT(A11,LEN(A11)-FIND("_",A11))="6.5",3,4)),0)

Sorry bạn vui chút, "phê" quá ặc ặc.@#!^%@#!^%@#!^% hông bít có sai chỗ nào hông nữa.
 
Lần chỉnh sửa cuối:
Bạn muốn INDEX _MATCH thì đây, công thức cho ô E1:
=INDEX($B$4:$D$7,MATCH(LEFT(A11,3),$A$4:$A$7,0),MA TCH(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{10.5,6.5,0.5},0))
Ngắn hơn chút có VLOOKUP_LOOKUP:
=VLOOKUP(LEFT(A11,3),$A$4:$D$7,LOOKUP(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{0.5,6.5,10.5},{4,3,2}),0)
Dài hơn chút thì có VLOOKUP_IF:
=VLOOKUP(LEFT(A11,3),$A$4:$D$7,IF(RIGHT(A11,LEN(A1 1)-FIND("_",A11))="10.5",2,IF(RIGHT(A11,LEN(A11)-FIND("_",A11))="6.5",3,4)),0)
Sorry bạn vui chút, "phê" quá ặc ặc.@#!^%@#!^%@#!^% hông bít có sai chỗ nào hông nữa.
"Ngắn" hơn và "quái" hơn chút:
PHP:
=SUMPRODUCT(COUNTIF(A11,$A$4:$A$7&"_*")*COUNTIF(A11,"*_"&$B$3:$D$3)*$B$4:$D$7)
Ẹc... Ẹc...
 
Xin thày Ndu chỉ cho cái thành phần _* trong công thức của thày là gì ah?
 
Xin thày Ndu chỉ cho cái thành phần _* trong công thức của thày là gì ah?

Chỗ này đơn giản bạn chỉ cần hiểu ký tự "_*" dịch là chuỗi ký tự bao gồm ký tự "_" và 1 chuỗi ký tự bất kỳ sau nó vì ký tự * đại diện cho 1 chuỗi ký tự.
 
Bạn muốn INDEX _MATCH thì đây, công thức cho ô E1:



Ngắn hơn chút có VLOOKUP_LOOKUP:



Dài hơn chút thì có VLOOKUP_IF:



Sorry bạn vui chút, "phê" quá ặc ặc.@#!^%@#!^%@#!^% hông bít có sai chỗ nào hông nữa.

Bác ơi, bác giải thích giúp em ý nghĩa của {4,3,2}
=VLOOKUP(LEFT(A11,3),$A$4:$D$7,LOOKUP(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{0.5,6.5,10.5},{4,3,2}),0)
 
Bác ơi, bác giải thích giúp em ý nghĩa của {4,3,2}
=VLOOKUP(LEFT(A11,3),$A$4:$D$7,LOOKUP(--RIGHT(A11,LEN(A11)-FIND("_",A11)),{0.5,6.5,10.5},{4,3,2}),0)
Bảng đơn giá có 4 cột, các mốc hiện giá trị Tấn lại sắp xếp từ lớn đến nhỏ: 10.5T - 6.5T - 0.5T, và tuần tự thứ tự cột của các giá trị Tấn này, tính từ cột thứ 1: "Tên nước", thì có stt: 2, 3, 4.
Bạn xem lại trong công thức LOOKUP("Giá trị dò" , { 0.5 , 6.5 , 10.5 }, {4,3,2} ) đã tạo sẵn thứ tự như ý ghi trên.

Theo tôi nghĩ, chẳng qua công thức bạn lấy ra hỏi chỉ là cách "chơi hàm" của anh em cho vui, chứ nhìn chung theo yêu cầu của bài #1, bạn dùng MATCH() thông thường là được rồi:
Mã:
E11=HLOOKUP(--MID(A11,5,5),$B$3:$D$7,MATCH(LEFT(A11,3),$A$3:$A$7,),)
Enter, fill xuống.
Hoặc dùng Sumproduct():
Mã:
E11=SUMPRODUCT((($A$4:$A$7)&"_"&$B$3:$D$3=A11)*$B$4:$D$7)
Enter, fill xuống.

Thân
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom