Page 1 of 1
สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Sun Mar 06, 2016 4:08 pm
by primeval
สอบถามครับ จากตารางตัวอย่าง
-----1.ผมต้องดึงข้อมูลที่มีค่าซ้ำออกมาอีกตาราง โดยมีเงื่อนไขดึงข้อมูลซ้ำตามสาขา เช่น A3=109 : ดอนเมือง และพบว่า J3=ตัวแทนและ หรือ นายหน้า ให้ดึงข้อมูลมาใส่ช่องตารางหลังจากดึง
-----2.ผมต้องการตัดค่าที่ขึ้น False หรือไม่พบจากตารางตัวอย่าง โดยให้เหลือแค่ข้อมูล จากข้อ 1
ตารางข้อมูลตัวอย่าง
สาขา คำนำหน่า ชื่อ นามสกุล รหัสตัวแทน เลขบัตร เลขที่ใบอนุญาต วันเริ่ม วันหมด ประเภทบัตร
109 : ดอนเมือง นาย วัน วัน 00001 31014 11005 ตัวแทน
102 : คลองเตย นางสาว เอ มาก 00002 31015 11006 นายหน้า
109 : ดอนเมือง นาย บี บอ 00003 31016 11007 ตัวแทน
103 : จักรวรรดิ Empire นาย ซี แคท 00004 31017 11008 นายหน้า
109 : ดอนเมือง นาย เค สุด 00005 31018 11009 นายหน้า
ต้องการดึงเฉพาะสาขา 109 : ดอนเมือง โดยมีเงื่อนไขต้องเป็นตัวแทนและนายหน้า
ตารางผลลัพธ์
สาขา คำนำหน่า ชื่อ นามสกุล รหัสตัวแทน เลขบัตร เลขที่ใบอนุญาต วันเริ่ม วันหมด ประเภทบัตร
109 : ดอนเมือง นาย วัน วัน 00001 31014 11005 ตัวแทน
109 : ดอนเมือง นาย บี บอ 00003 31016 11007 ตัวแทน
109 : ดอนเมือง นาย เค สุด 00005 31018 11009 นายหน้า
ผลลัพธ์หลังจากดึงมา แสดงผลเฉพาะสาขาที่ระบุไว้ เป็นตัวแทนและนายหน้า
ผมได้เขียน File แนบไว้แล้วครับ
การดึงข้อมูลแบบเงื่อนไข.xlsx
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Sun Mar 06, 2016 4:45 pm
by snasui

ตัวอย่างสูตรครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
!
| Note: Ctrl+Shift+Enter หมายถึง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Sun Mar 06, 2016 11:17 pm
by primeval
snasui wrote:
ตัวอย่างสูตรครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
!
| Note: Ctrl+Shift+Enter หมายถึง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
ขอบคุณครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF(OR($J$2:$J$14="ตัวแทน",$J$2:$J$14="นายหน้า"),ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
แล้วผมขอถามต่อนิดนึงนะครับ
ถ้าผมต้องการดูทุกสาขา และเป็นตัวแทน ผมต้องตัดส่วนไหนออกครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Mon Mar 07, 2016 6:11 pm
by snasui
primeval wrote:ถ้าผมต้องการดูทุกสาขา และเป็นตัวแทน ผมต้องตัดส่วนไหนออกครับ

จากสูตร
snasui wrote:=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
ปรับเป็นด้านล่างครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1),ROWS(A$18:A18))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Mon Mar 07, 2016 8:33 pm
by primeval
snasui wrote:primeval wrote:ถ้าผมต้องการดูทุกสาขา และเป็นตัวแทน ผมต้องตัดส่วนไหนออกครับ

จากสูตร
snasui wrote:=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
ปรับเป็นด้านล่างครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1),ROWS(A$18:A18))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
ขอบคุณครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Wed Mar 09, 2016 7:55 pm
by primeval
primeval wrote:snasui wrote:primeval wrote:ถ้าผมต้องการดูทุกสาขา และเป็นตัวแทน ผมต้องตัดส่วนไหนออกครับ

จากสูตร
snasui wrote:=IFERROR(INDEX(A$2:A$14,SMALL(IF($A$2:$A$14="109 : ดอนเมือง",IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1)),ROWS(A$18:A18))),"")
ปรับเป็นด้านล่างครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF($J$2:$J$14="ตัวแทน",ROW($A$2:$A$14)-ROW($A$2)+1),ROWS(A$18:A18))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
ขอบคุณครับ
=IFERROR(INDEX(A$2:A$14,SMALL(IF(OR($J$2:$J$14="ตัวแทน",$J$2:$J$14="นายหน้า",ROW($A$2:$A$14)-ROW($A$2)+1),ROWS(A$18:A18))),"")
ติดปัญหาครับ พอเปลี่ยน ข้อมูลใน Excel จากตัวแทนเป็น พรบ. ปรากฏว่า ว่าไม่ยอมลบค่าออก ผมต้องเพิ่มตรงไหนมั้งครับ พอดีอยากได้ ทั้ง 2 อย่างในตารางเดี่ยวกันครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Wed Mar 09, 2016 10:30 pm
by snasui

แนบไฟล์ล่าสุดที่เขียนสูตรมาเรียบร้อยแล้ว ระบุตัวอย่างคำตอบที่ต้องการมาด้วยจะได้ช่วยตอบต่อไปจากนั้นครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Wed Mar 09, 2016 11:37 pm
by primeval
snasui wrote:
แนบไฟล์ล่าสุดที่เขียนสูตรมาเรียบร้อยแล้ว ระบุตัวอย่างคำตอบที่ต้องการมาด้วยจะได้ช่วยตอบต่อไปจากนั้นครับ
แนบให้แล้วครับ รบกวนด้วยครับ
การดึงข้อมูลแบบเงื่อนไข ต่อ.xlsx
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Thu Mar 10, 2016 8:49 am
by logic
ใช้ isnumber และ match ช่วยครับ
N25 =IFERROR(INDEX(A$3:A$26,SMALL(IF(ISNUMBER(MATCH($J$3:$J$26,{"ตัวแทน","พรบ."},0)),ROW($A$3:$A$26)-ROW($A$3)+1),ROWS(N$25:N25))),"")
กดแป้นแบบ array (ctrl+shft+enter) แล้วคัดลอกไปด้านขวาและด้านล่าง
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Thu Mar 10, 2016 9:20 am
by XDoll

อีกตัวอย่างครับ (ปรับแต่งสูตรของอาจารย์)
N25 =IFERROR(INDEX(A$2:A$26,SMALL(IF(($J$2:$J$26="ตัวแทน")+($J$2:$J$26="พรบ."),ROW($A$2:$A$26)-ROW($A$2)+1),ROWS(A$25:A25))),"") ctrl+shft+enter คอปปี้ไปด้านขวาและลงล่างครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Thu Mar 10, 2016 11:52 am
by primeval
ขอบคุณครับ สอบถามเพิ่มเติม
Rows นี้หมายถึงอะไรเหรอครับ
Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Thu Mar 10, 2016 2:03 pm
by logic
rows(range) จะเป็นการนับจำนวนบรรทัดของ range ครับ

Re: สอบถามวิธีการดึงข้อมูลซ้ำแบบมีเงื่อนไขหลายชั้นครับ
Posted: Thu Mar 10, 2016 2:09 pm
by primeval
logic wrote:rows(range) จะเป็นการนับจำนวนบรรทัดของ range ครับ

ขอบคุณครับ