quick87
(/ội...
- Tham gia
- 8/4/08
- Bài viết
- 375
- Được thích
- 351
- Giới tính
- Nam
Kính gửi các Thầy, các anh chị GPE.
Em có 1 câu hỏi nhỏ về hàm tìm kiếm lấy giá trị với dữ liệu nằm ở nhiều vùng.
Cụ thể, em có ghi trong file đính kèm.
Mong nhận được sự giúp đỡ của mọi người.
Em xin cảm ơn !
Tại E16 sử dụng tạm công thức này nhé
=IF(COUNTIF($B$2:$B$10;B16);VLOOKUP(B16;$B$2:$D$10;2;0);IF(COUNTIF($E$2:$E$10;B16);VLOOKUP(B16;$E$2:$G$10;2;0);IF(COUNTIF($H$2:$H$10;B16);VLOOKUP(B16;$H$2:$J$10;2;0);VLOOKUP(B16;$K$2:$M$10;2;0))))
Cố ý dùng hàm thôi thầy ạ
nếu có 30 bảng thì soay sang dùng VBA của thầy thôi
MVlookUp
http://www.giaiphapexcel.com/forum/showthread.php?42773-T%E1%BA%A1o-h%C3%A0m-t%C6%B0%C6%A1ng-t%E1%BB%B1-Vlookup-t%C3%ACm-trong-nhi%E1%BB%81u-b%E1%BA%A3ng
=VLOOKUP(B16,OFFSET($B$2:$D$10,,LOOKUP(2,1/COUNTIF(OFFSET($B$2:$B$10,,3*(ROW($1:$100)-1)),B16),3*(ROW($1:$100)-1))),2,0)
Kính gửi các Thầy, các anh chị GPE.
Em có 1 câu hỏi nhỏ về hàm tìm kiếm lấy giá trị với dữ liệu nằm ở nhiều vùng.
Cụ thể, em có ghi trong file đính kèm.
Em xin cảm ơn !
Cách này gọn nhất rồi Thầy ạ, em dùng mảng INDEX với MATCH kết hợp nhiều vùng, nhưng dài ngoằng (còn dài hơn VLOOKUP từng vùng), sợ người ta tặng gạch nên hỏng dám đưa lênNếu vẫn dùng công thức thì vầy xem:
Có cách nào rút gọn nữa không nhỉ?Mã:=VLOOKUP(B16,OFFSET($B$2:$D$10,,LOOKUP(2,1/COUNTIF(OFFSET($B$2:$B$10,,3*(ROW($1:$100)-1)),B16),3*(ROW($1:$100)-1))),2,0)
Ẹc... Ẹc...
Ngắn rùi thầy ạNếu vẫn dùng công thức thì vầy xem:
Có cách nào rút gọn nữa không nhỉ?Mã:=VLOOKUP(B16,OFFSET($B$2:$D$10,,LOOKUP(2,1/COUNTIF(OFFSET($B$2:$B$10,,3*(ROW($1:$100)-1)),B16),3*(ROW($1:$100)-1))),2,0)
Ẹc... Ẹc...
Kính gửi các Thầy, các anh chị GPE.
Em có 1 câu hỏi nhỏ về hàm tìm kiếm lấy giá trị với dữ liệu nằm ở nhiều vùng.
Cụ thể, em có ghi trong file đính kèm.
Mong nhận được sự giúp đỡ của mọi người.
Em xin cảm ơn !
=MIN(IF($B$2:$L$10=$B16;COLUMN($B$2:$L$10)*1000+ROW($B$2:$L$10);""))
=INDEX($A$1:$L$10;MOD(pos;1000);INT(pos/1000)+1)
=INDEX($B$2:$M$10,SUMPRODUCT(($B$2:$M$10=$B17)*ROW($B$2:$M$10))-1,SUMPRODUCT(($B$2:$M$10=$B17)*COLUMN($B$2:$M$10))+1)
=INDEX($B$2:$M$10,SUM(($B$2:$M$10=$B16)*ROW($B$2:$M$10))-1,SUM(($B$2:$M$10=$B16)*COLUMN($B$2:$M$10))+1)
=VLOOKUP($B16;OFFSET($B$2:$C$10;;MAX(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
=VLOOKUP($B16;OFFSET($B$2:$C$10;;SUMPRODUCT(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
---------------------Dhn46 cũng góp vui với công thức
Enter bình thườngMã:=INDEX($B$2:$M$10,SUMPRODUCT(($B$2:$M$10=$B17)*ROW($B$2:$M$10))-1,SUMPRODUCT(($B$2:$M$10=$B17)*COLUMN($B$2:$M$10))+1)
Ctrl + Shift + EnterMã:=INDEX($B$2:$M$10,SUM(($B$2:$M$10=$B16)*ROW($B$2:$M$10))-1,SUM(($B$2:$M$10=$B16)*COLUMN($B$2:$M$10))+1)
Đang hình dung nếu TÌM ĐƯỢC TỪ 2 PHẦN TỬ THỎA ĐIỀU KIỆN thì... sao đây ta?Thấy dhn46 gửi dự thi tận 2 công thức nên tôi gửi thêm cho chắc ăn
Nếu cô giáo cứ bắt dùng Vlookup thì ... lần này làm bình thường
Mã:=VLOOKUP($B16;OFFSET($B$2:$C$10;;MAX(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
kết thúc bằng Ctrl+Shift+Enter
hoặc nếu dữ liệu không trùng (như trong file) thì
Mã:=VLOOKUP($B16;OFFSET($B$2:$C$10;;SUMPRODUCT(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
kết thúc bình thường
Vậy thì em liệt kê hết luôn tất cả các phần tử thoả mãn---------------------
Đang hình dung nếu TÌM ĐƯỢC TỪ 2 PHẦN TỬ THỎA ĐIỀU KIỆN thì... sao đây ta?
Ẹc... Ẹc...
=INDEX($B$2:$M$10,--RIGHT(LARGE(($B$2:$M$10=$B$16)*10^COLUMN($B$2:$M$10)+ROW($B$2:$M$10),[COLOR=#ff0000]ROW(1:1)[/COLOR]),2)-1,--RIGHT(LARGE(($B$2:$M$10=$B$16)*(10^COLUMN($B$2:$M$10))+COLUMN($B$2:$M$10),ROW(1:1)),2))
---------------------
Đang hình dung nếu TÌM ĐƯỢC TỪ 2 PHẦN TỬ THỎA ĐIỀU KIỆN thì... sao đây ta?
Ẹc... Ẹc...
=VLOOKUP(B16,OFFSET($B$2:$D$10,,LOOKUP(2,1/COUNTIF(OFFSET($B$2:$B$10,,3*(ROW($1:$100)-1)),B16),3*(ROW($1:$100)-1))),2,0)
=VLOOKUP($B16;OFFSET($B$2:$C$10;;MAX(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
kết thúc bằng Ctrl+Shift+Enter
=VLOOKUP($B16;OFFSET($B$2:$C$10;;SUMPRODUCT(($B$2:$L$10=$B16)*(COLUMN($B$2:$L$10)-2)));2;0)
Mà "hình dung nếu TÌM ĐƯỢC TỪ 2 PHẦN TỬ THỎA ĐIỀU KIỆN thì... sao đây ta?"
Vì nếu tôi hiểu code thì lúc đó nó sẽ trả lại kết quả cuối cùng.
Ý em là: Bài toán DÒ TÌM nó "kỵ" SUMPRODUCT anh à (tức nguy cơ cho kết quả sai rất cao)Hay tôi quên một cái gì đó và ý Tuấn nói về vấn đề khác?
Vâng! Đương nhiên thế mà anh (vì em dùng LOOKUP)
Nhưng thà rằng khi có trùng nó lấy kết quả nào cũng được (dù là đầu hay cuối) chứ đừng có... trật lất
Ẹc... Ẹc...
---------------
Ý em là: Bài toán DÒ TÌM nó "kỵ" SUMPRODUCT anh à (tức nguy cơ cho kết quả sai rất cao)
- Bác SiwTom nói chí phải. Khi đưa ra một vấn đề thì hãy tìm mọi cách để giải quyết, chí ít là vấn đề trước mắt còn kinh nghiệm là những trường hợp "chưa lường hết được" để rồi sau áp dụng.....................................................................................................................................
Ngoài ra theo tôi dùng gì cũng được nhưng phải ý thức được. Sợ dao mổ người (dao giải phẫu) nó sắc bén quá mà không dùng trong mọi trường hợp thì có lẽ không đúng.
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2