Page 1 of 1
สอบถามการดึงข้อมูลจำนวนหลายแถว มาแสดงผลการค้นหา
Posted: Tue Apr 09, 2019 2:10 pm
by nopporn24
สอบถามเพื่อนๆสมาชิกด้วยครับ ผมต้องการดึงข้อมูลจากคนละ Worksheet โดยการใส่คำค้นหา เพื่อให้ดึงข้อมูลจากอีก Sheet มาแสดง ซึ่งคำค้นหาแต่ละคำ จะมีจำนวนแถวไม่เท่ากัน ปกติเคยใช้แต่ Vlookup หรือ index+match แต่จะมีข้อมูลเพียงแถวเดียว ก็จะสามารถค้นหาและดึงมาแสดงได้ แต่ด้วยจำนวนที่แต่ละคำ มีจำนวนรายการไม่เท่ากัน จะต้องใช้ฟังก์ชั่นยังไง ขอบคำแนะนำด้วยครับ ผมแนบไฟล์ตัวอย่างให้ช่วยดูให้ด้วยครับ
ขอขอบพระคุณล่วงหน้าเป็นอย่างสูงสำหรับคำตอบและคำแนะนำดีๆครับ
Re: สอบถามการดึงข้อมูลจำนวนหลายแถว มาแสดงผลการค้นหา
Posted: Tue Apr 09, 2019 2:21 pm
by Supachok
A4
=IFERROR(INDEX(ข้อมูล!A$3:A$100,SMALL(IF($C$1=ข้อมูล!$A$3:$A$100,ROW(ข้อมูล!$A$1:$A$97)),ROW(A1))),"")
Array formula {}
Copy down + right
A4 อีกแบบ
=IFERROR(INDEX(ข้อมูล!A$3:A$99,AGGREGATE(15,6,ROW($A$1:$A$97)/(แสดงรายการ!$C$1=ข้อมูล!$A$3:$A$97),ROW(A1))),"")
Re: สอบถามการดึงข้อมูลจำนวนหลายแถว มาแสดงผลการค้นหา
Posted: Tue Apr 09, 2019 3:23 pm
by nopporn24
Supachok wrote: Tue Apr 09, 2019 2:21 pm
A4
=IFERROR(INDEX(ข้อมูล!A$3:A$100,SMALL(IF($C$1=ข้อมูล!$A$3:$A$100,ROW(ข้อมูล!$A$1:$A$97)),ROW(A1))),"")
Array formula {}
Copy down + right
A4 อีกแบบ
=IFERROR(INDEX(ข้อมูล!A$3:A$99,AGGREGATE(15,6,ROW($A$1:$A$97)/(แสดงรายการ!$C$1=ข้อมูล!$A$3:$A$97),ROW(A1))),"")
ขอบคุณมากๆครับ เรื่อง Array เป็นอะไรที่ผมยังไม่เข้าใจเลยครับ ผมขอคำอธิบาย สูตร Array ตัวแรก แบบทีละตัวได้ไหมครับ ผมลองเอามาใส่ในตัวอย่างทำได้ตามที่ต้องการเลยครับ แต่พอเอามาใช้ในไฟล์จริงผม ผมใส่ค่าไม่ถูกครับ ไม่แสดงข้อมูลครับ

Re: สอบถามการดึงข้อมูลจำนวนหลายแถว มาแสดงผลการค้นหา
Posted: Tue Apr 09, 2019 3:30 pm
by Supachok
อธิบายแบบนี้
INDEX(ข้อมูล!A$3:A$100,
SMALL( if )ROW(A1))),"")
IF($C$1=ข้อมูล!$A$3:$A$100,ROW(ข้อมูล!$A$1:$A$97)),
ถ้า C1 = A3:A100 ตรวจมีตัวใดเหมือนบ้าง
ถ้าเหมือนให้แสดง Row (1,2,3,4,5,6.......,95,96,97)
ตย.
หากเหมือนเฉพาะตัวแรกและสุดท้ายจะได้ (1,false,...............,false,97)
สูตร small จะได้ Array จาก if small(1,false,...............,false,97),row(a1)
row(a1) = 1
จะได้ค่าที่่ 1
จากนั้น INDEX จะได้ค่า small มาประกอบเพื่อค่าตำแหน่่ง row
INDEX(ข้อมูล!A$3:A$100,(small)
Re: สอบถามการดึงข้อมูลจำนวนหลายแถว มาแสดงผลการค้นหา
Posted: Tue Apr 09, 2019 3:37 pm
by nopporn24
Supachok wrote: Tue Apr 09, 2019 3:30 pm
อธิบายแบบนี้
INDEX(ข้อมูล!A$3:A$100,
SMALL( if )ROW(A1))),"")
IF($C$1=ข้อมูล!$A$3:$A$100,ROW(ข้อมูล!$A$1:$A$97)),
ถ้า C1 = A3:A100 ตรวจมีตัวใดเหมือนบ้าง
ถ้าเหมือนให้แสดง Row (1,2,3,4,5,6.......,95,96,97)
ตย.
หากเหมือนเฉพาะตัวแรกและสุดท้ายจะได้ (1,false,...............,false,97)
สูตร small จะได้ Array จาก if small(1,false,...............,false,97),row(a1)
row(a1) = 1
จะได้ค่าที่่ 1
จากนั้น INDEX จะได้ค่า small มาประกอบเพื่อค่าตำแหน่่ง row
INDEX(ข้อมูล!A$3:A$100,(small)
ขอบคุณมากครับ