Xin tư vấn công thức lọc theo 1 giá trị trong bảng, trả kết quả theo bảng, và trả kết quả nối chuỗi

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

tieutuvodanh192

Thành viên thường trực
Tham gia
25/3/19
Bài viết
289
Được thích
322
Em chào mọi người,
Nhờ các anh/chị xem và tư vấn giúp em công thức ở 2 trường hợp bên dưới trên phiên bản Excel 2013 với nha, không cần thêm cột phụ và nếu được thì không cần cố định vùng dữ liệu nguồn. Với phiên bản Excel thấp thực sự em đang bí ý tưởng.
Xin cảm ơn.!

1695281393118.png
 

File đính kèm

Lần chỉnh sửa cuối:
Em chào mọi người,
Nhờ các anh/chị xem và tư vấn giúp em công thức ở 2 trường hợp bên dưới trên phiên bản Excel 2013 với nha, không cần thêm cột phụ và nếu được thì không cần cố định vùng dữ liệu nguồn. Với phiên bản Excel thấp thực sự em đang bí ý tưởng.
Xin cảm ơn.!

View attachment 295001
Dùng cốt được không ?
 
Em chào mọi người,
Nhờ các anh/chị xem và tư vấn giúp em công thức ở 2 trường hợp bên dưới trên phiên bản Excel 2013 với nha, không cần thêm cột phụ và nếu được thì không cần cố định vùng dữ liệu nguồn. Với phiên bản Excel thấp thực sự em đang bí ý tưởng.
Xin cảm ơn.!

View attachment 295001
Ý 1 thì dễ hơn tự làm dựa theo công thức ý 2 này (hơi loằng ngoằng):
Mã:
=IFERROR(INDEX($C$6:$D$28,AGGREGATE(15,6,(ROW($B$6:$B$28)-5)/($B$6:$B$28=$L$4),ROW(A1)-COUNTIF($B$6:$B$28,$L$4)*(ROW(A1)>COUNTIF($B$6:$B$28,$L$4))),1+(ROW(A1)>COUNTIF($B$6:$B$28,$L$4))),"")
 
Ý 1 đây :
Mã:
=IFERROR(INDEX($A$5:$D$28,AGGREGATE(15,6,ROW($A$5:$D$28)/($B$5:$B$28=$G$4)-4,ROW(A1)),COLUMN(A1)),"")
Ý 2:
Mã:
=IFERROR(INDEX($C$5:$D$28,AGGREGATE(15,6,ROW($A$5:$A$28)/($B$5:$B$28=$L$4)-4,MOD(ROW(A1)-1,COUNTIF($B$5:$B$28,$L$4))+1),TRUNC((ROW(A1)-1)/COUNTIF($B$5:$B$28,$L$4))+1),"")
Cả ý 1 và ý 2 có thể làm theo cách này:
Mã:
=INDIRECT(TEXT(MID(REPT(AGGREGATE(15,6,ROW($C$5:$D$28)/($B$5:$B$28=$L$4)+COLUMN($C$5:$D$28)*1000,ROW(A1)),2),2,4),"R0C0"),0)
 
Code em có thể tự mò mò được anh, nhưng dùng code thì không undo được, file này giao cho các chị em dùng, họ thích được undo nên em mới phải tìm cách viết công thức anh ạ. :wacko:
Đây chỉ là lọc và xếp thôi. Mắc chi không "undo" được?
Cần tập cái nhìn cao rộng hơn về từ "undo".
 
Ý 1 thì dễ hơn tự làm dựa theo công thức ý 2 này (hơi loằng ngoằng):
Mã:
=IFERROR(INDEX($C$6:$D$28,AGGREGATE(15,6,(ROW($B$6:$B$28)-5)/($B$6:$B$28=$L$4),ROW(A1)-COUNTIF($B$6:$B$28,$L$4)*(ROW(A1)>COUNTIF($B$6:$B$28,$L$4))),1+(ROW(A1)>COUNTIF($B$6:$B$28,$L$4))),"")
Ý 1 đây :
Mã:
=IFERROR(INDEX($A$5:$D$28,AGGREGATE(15,6,ROW($A$5:$D$28)/($B$5:$B$28=$G$4)-4,ROW(A1)),COLUMN(A1)),"")
Ý 2:
Mã:
=IFERROR(INDEX($C$5:$D$28,AGGREGATE(15,6,ROW($A$5:$A$28)/($B$5:$B$28=$L$4)-4,MOD(ROW(A1)-1,COUNTIF($B$5:$B$28,$L$4))+1),TRUNC((ROW(A1)-1)/COUNTIF($B$5:$B$28,$L$4))+1),"")
Cả ý 1 và ý 2 có thể làm theo cách này:
Mã:
=INDIRECT(TEXT(MID(REPT(AGGREGATE(15,6,ROW($C$5:$D$28)/($B$5:$B$28=$L$4)+COLUMN($C$5:$D$28)*1000,ROW(A1)),2),2,4),"R0C0"),0)
Cảm ơn 2 anh rất nhiều, em đã mở mang được rất nhiều nhờ mổ xẻ công thức 2 anh cho. Xin cảm ơn !

Đây chỉ là lọc và xếp thôi. Mắc chi không "undo" được?
Cần tập cái nhìn cao rộng hơn về từ "undo".
Cháu chào chú, kiến thức về VBA code của cháu cũng chỉ lõm bõm tự vọc vạch thôi ạ, nếu có chỗ nào thiếu sót nhờ chú chỉ bảo giúp.
 
Bài này bạn thêm 1 cột phụ đầu tiên, đếm giá trị thành 1_1, 1_2,..., 2_1, 2_2... thì khi đó chỉ cần vlookup thuần
 
Bài này bạn thêm 1 cột phụ đầu tiên, đếm giá trị thành 1_1, 1_2,..., 2_1, 2_2... thì khi đó chỉ cần vlookup thuần
Chính xác anh, nếu dùng cột phụ thì đơn giản rồi anh, mấu chốt file này đã được Protect sheet, mẫu dùng chung cho toàn cty, nên không tùy tiện thêm bớt dữ liệu được anh.
 
...
Cháu chào chú, kiến thức về VBA code của cháu cũng chỉ lõm bõm tự vọc vạch thôi ạ, nếu có chỗ nào thiếu sót nhờ chú chỉ bảo giúp.
Không phải về VBA, mà là cách nhìn và giải quyết vấn đề.
Code dựa vào giá trị một vào ô nào đó để lọc/xuất ra két quả. Undo trong trường hợp này chỉ giản dị là gõ lại các giá trị ấy và/hoặc chạy code lại.
 
Cảm ơn 2 anh rất nhiều, em đã mở mang được rất nhiều nhờ mổ xẻ công thức 2 anh cho. Xin cảm ơn !


Cháu chào chú, kiến thức về VBA code của cháu cũng chỉ lõm bõm tự vọc vạch thôi ạ, nếu có chỗ nào thiếu sót nhờ chú chỉ bảo giúp.
Chỗ công thức indirect chỉ áp dụng khi cột chứa vùng cần lấy nhỏ hơn 10 (3 và 4 tương ứng cột C, D). Bạn thử ứng dụng để lấy dữ liệu khi cột dữ liệu ở cột 9 và 10 (cột i, j) thử xem sao.
 
Web KT

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

Back
Top Bottom