snasui wrote: Wed May 04, 2022 8:10 pm

ลองใช้คอลัมน์ช่วยตามตัวอย่างสูตรตามล่างครับ
- ที่ F3 คีย์
=AGGREGATE(15,6,ROW($A$2:$A$5077)/(ISNA(MATCH($A$2:$A$5077,$E$2:$E$148,0))),ROWS(G$3:G3))
Enter > Copy ลงด้านล่าง
- ที่ G3 คีย์
=IF(ISNUMBER($F3),INDEX(A:A,$F3),"")
Enter > Copy ลงด้านล่าง
- ที่ H3 คีย์
=IF(ISNUMBER($F3),INDEX(B:B,$F3),"")
Enter > Copy ลงด้านล่าง
- ที่ I3 คีย์
=IF(ISNUMBER($F3),INDEX(C:C,$F3),"")
Enter > Copy ลงด้านล่าง
- ที่ K3 คีย์
=AGGREGATE(15,6,ROW($A$2:$A$5077)/(ISNUMBER(MATCH($A$2:$A$5077,$E$2:$E$148,0))),ROWS(L$3:L3))
Enter > Copy ลงด้านล่าง
- ที่ L3 คีย์
=IF(ISNUMBER($K3),INDEX(A:A,$K3),"")
Enter > Copy ลงด้านล่าง
- ที่ M3 คีย์
=IF(ISNUMBER($K3),INDEX(B:B,$K3),"")
Enter > Copy ลงด้านล่าง
- ที่ N3 คีย์
=IF(ISNUMBER($K3),INDEX(C:C,$K3),"")
Enter > Copy ลงด้านล่าง
สอบถามเพิ่มเติมครับ ข้อไหนผิดรบกวน อ. อธิบายเพิ่มเติมครับ
1.---------------------------------------------------------------------------------------------------------------------------------
=AGGREGATE(15,6,ROW($A$2:$A$5077)/(ISNA(MATCH($A$2:$A$5077,$E$2:$E$148,0))),ROWS(G$3:G3))
Aggregate + small คือ เรียงเอาแถวที่มีค่าน้อยที่สุดขึ้นใช่ไหมครับ
Row / match ก็คือเช็คว่า ถ้า match ให้แสดงเลขแถว
***ISNA ตัวนี้มีไว้ทำไมครับ พยายามลองดูแล้วก็ไม่เข้าใจ คือ เอาค่าที่ไม่ match รึเปล่าครับ***
2.-----------------------------------------------------------------------------------------------------------------------------------
=AGGREGATE(15,6,ROW($A$2:$A$5077)/(ISNUMBER(MATCH($A$2:$A$5077,$E$2:$E$148,0))),ROWS(L$3:L3))
***ISNUMBER*** ล้อมาจากข้อที่ 1 ถ้า ISNA คือเอาค่าที่หาไม่เจอ ทำไมต้องมี ISNUMBER ทั้งๆที่ ROW / Match =มันไม่ match อยู่แล้วครับ
3.-----------------------------------------------------------------------------------------------------------------------------------
=IF(ISNUMBER($F3),INDEX(A:A,$F3),"")
เช็คว่าเป็นตัวเลขไหมถ้าใช่ให้เอาเอาแถวที่ (เลข) F3
รบกวนผู้รู้ด้วยครับ ขอบคุณครับ ^_^