Page 1 of 1

ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 10:38 am
by Xcelvba
มี Option Button อยู่ 4 ปุ่มได้แก่
1.ชื่อข้อมูลชุด 1 = ชุดข้อมูล MM101 ใน คอลัมน์ C
2.ชื่อข้อมูลชุด 2 = ชุดข้อมูล MM102 ใน คอลัมน์ C
3.ชื่อข้อมูลชุด 3 = ชุดข้อมูล MM103 ใน คอลัมน์ C
4.ชื่อ ขึ้นต้นด้วย MM = ทุกข้อมูลที่ขึ้นต้นด้วย MM ทั้งหมด

ปัจจุบันสูตรสามารถทำได้ มีข้อ 1-3 โดยสูตรค่อนข้างยาวครับ
1.IF($H$3=1,AGGREGATE(15,6,ROW($C$2:$C$27)/($C$2:$C$27="MM 101"),ROWS(O$3:O3)))
2.IF($H$3=2,AGGREGATE(15,6,ROW($C$2:$C$27)/($C$2:$C$27="MM 102"),ROWS(O$3:O3)))
3.IF($H$3=3,AGGREGATE(15,6,ROW($C$2:$C$27)/($C$2:$C$27="MM 103"),ROWS(O$3:O3)))
4.ทำไม่ได้ครับ

แล้วเอาสูตรมาต่อกันครับ อยากสอบถามวิธีทำให้สูตร สั้นลง + ข้อ 4 ครับ ในช่อง ไฮไลน์สีเหลืองครับ หรือวิธีที่สั้นกว่านี้

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 12:26 pm
by snasui
:D ตัวอย่างสูตรที่เซลล์ L3 ครับ

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($C$2:$C$27)/IF($H$3=4,1,INDEX($C$2:$C$27="MM 10"&$H$3,0)),ROWS(O$3:O3))),"")

Enter > Copy ไป M3 > Copy ลงด้านล่าง

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 1:32 pm
by Xcelvba
snasui wrote: Tue Oct 25, 2022 12:26 pm :D ตัวอย่างสูตรที่เซลล์ L3 ครับ

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($C$2:$C$27)/IF($H$3=4,1,INDEX($C$2:$C$27="MM 10"&$H$3,0)),ROWS(O$3:O3))),"")

Enter > Copy ไป M3 > Copy ลงด้านล่าง
ขอบคุณครับ สอบถาม เพิ่มเติมครับ ถ้ากรณี ชื่อชุดไม่เหมือนกันเลยครับ มีวิธีการใดบ้างครับ เพราะสูตรที่ อาจารย์ให้มา ให้ H3 แทนตัวเลขที่เปลี่ยนไปตาม Option Btn
เช่น
1.MM1001
2.BB1654
3.CCDFVC
4.เอาทุกอัน IF($H$3=4,1 น่าจะใช้แบบเดิมของอาจารย์ได้ (เข้าใจว่า ให้ทุกเคส = 1 คือ เป็นจริงทั้งหมด)

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 1:53 pm
by snasui
:D ตัวอย่างการปรับสูตรครับ

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($C$2:$C$27)/IF($H$3=4,1,INDEX($C$2:$C$27=CHOOSE($H$3,"MM1001","BB1654","CCDFVC"),0)),ROWS(O$3:O3))),"")

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 3:39 pm
by Xcelvba
snasui wrote: Tue Oct 25, 2022 1:53 pm :D ตัวอย่างการปรับสูตรครับ

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($C$2:$C$27)/IF($H$3=4,1,INDEX($C$2:$C$27=CHOOSE($H$3,"MM1001","BB1654","CCDFVC"),0)),ROWS(O$3:O3))),"")
ขอบคุณครับ :thup:

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 4:23 pm
by Xcelvba
snasui wrote: Tue Oct 25, 2022 1:53 pm :D ตัวอย่างการปรับสูตรครับ

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($C$2:$C$27)/IF($H$3=4,1,INDEX($C$2:$C$27=CHOOSE($H$3,"MM1001","BB1654","CCDFVC"),0)),ROWS(O$3:O3))),"")
ขอสอบถามเพิ่มเติมจากกระทู้นี้ครับ กรณีมี ปุ่ม Option 2 อันสามารถทำำได้ไหมครับ
ผมลองทำแล้วใช้สูตร

=INDEX(A:A,AGGREGATE(15,6,ROW($D$2:$D$1791)/AND((IF($P$2=3,1,INDEX($D$2:$D$1791=CHOOSE($P$2,"ชาย","หญิง"),0))),(IF($G$2=5,1,INDEX($D$2:$D$1791=CHOOSE($G$2,"ไทย","พม่า","กัมพูชา","ลาว"),0))),ROWS(G$8:G8))))

ไม่ได้ผลลัพธ์ครับ

Re: ต้องการกรองข้อมูลโดย การใช้ สูตร + ฟอร์ม คอนโทร

Posted: Tue Oct 25, 2022 4:50 pm
by snasui
:D ตัวอย่างการปรับสูตรครับ

=AGGREGATE(15,6,ROW($D$2:$D$1791)/IF($P$2=3,1,INDEX($D$2:$D$1791=CHOOSE($P$2,"ชาย","หญิง"),0))/IF($G$2=5,1,INDEX($E$2:$E$1791=CHOOSE($G$2,"ไทย","พม่า","กัมพูชา","ลาว"),0)),ROWS(G$8:G8))