Page 1 of 1

สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 2:01 pm
by ake9842
รบกวนทุกท่านด้วยครับ หากต้องการหาข้อมูลจากตารางหลายตาราง โดยเลือกหัวข้ออการค้นหา จาก find1,find2 เพื่อให้แสดงค่าในตาราง ควรใช้สูตรอย่างไรดีครับ

ตัวอย่างตามเอกสารแนบครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 2:39 pm
by DhitiBank
ลองแบบนี้ครับ

ที่ C26 คีย์
=INDEX(OFFSET($D$4,7*(MATCH(--RIGHT(C$24,1),{1;2;3},0)-1),18*(MATCH(LEFT(C$24),{"A","B"},0)-1),4,12),MATCH($A26,$B$4:$B$7,0),MATCH(C$25,$D$3:$P$3,0))

enter--> คัดลอกไป D26 แล้วคัดลอกลงล่างครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 2:53 pm
by ake9842
ขั้นเทพมากเลยครับ ขอบคุณมากๆครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 3:15 pm
by XDoll
:mrgreen: แอบมาจดสูตรครับ :o :thup:

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 3:19 pm
by ake9842
ถ้าไม่เป็นการรบกวนมากไปช่วย อธิบายทีละส่วนหน่อยได้ไหมครับ ข้าหน่อยยังอ่อนต่อโลกนัก

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 7:51 pm
by snasui
:D สูตรลักษณะนั้นมีข้อจำกัดให้ใช้ตามตัวอย่างที่ยกมาเท่านั้นครับ

กรณีที่แต่ละส่วนไม่เป็นไปตามตัวอย่าง เช่นส่วนหัวของตารางไม่ได้ลงท้ายด้วยตัวเลข หรือ ลงท้ายต้วยตัวเลขหลายหลักไม่แน่นอน จะต้องปรับสูตรเป็นอย่างอื่นและยากขึ้นอีกมาก

สูตรที่ต้องศึกษาให้เข้าใจคือ Index, Match, Offset, Left, Right ส่วนค่าที่คีย์อยู่ในปีกกา เช่น {1,2,3} เรียกว่าค่าคงที่ Array ส่วนตัวเลขที่นำไปกระทำเข้าไปในสูตร เช่น บวก ลบ คูณ หาร ก็เพื่อเปลี่ยนผลที่ได้จากสูตรให้ไปเป็นอย่างอื่นตามค่าที่ต้องการ

จากสูตร =INDEX(OFFSET($D$4,7*(MATCH(--RIGHT(C$24,1),{1;2;3},0)-1),18*(MATCH(LEFT(C$24),{"A","B"},0)-1),4,12),MATCH($A26,$B$4:$B$7,0),MATCH(C$25,$D$3:$P$3,0))

หมายถึง จากช่วงข้อมูล OFFSET($D$4,7*(MATCH(--RIGHT(C$24,1),{1;2;3},0)-1),18*(MATCH(LEFT(C$24),{"A","B"},0)-1),4,12) ซึ่งผลลัพธ์จะได้เป็นตารางข้อมูล ให้นำบรรทัดที่เป็นผลลัพธ์ของ MATCH($A26,$B$4:$B$7,0) และคอลัมน์ที่เป็นผลลัพธ์ของ MATCH(C$25,$D$3:$P$3,0) มาแสดง

จากสูตร OFFSET($D$4,7*(MATCH(--RIGHT(C$24,1),{1;2;3},0)-1),18*(MATCH(LEFT(C$24),{"A","B"},0)-1),4,12) หมายถึง จากเซลล์ $D$4 ลงไปด้านล่างจำนวน 7*(MATCH(--RIGHT(C$24,1),{1;2;3},0)-1) บรรทัด ไปด้านขวาจำนวน 18*(MATCH(LEFT(C$24),{"A","B"},0)-1) คอลัมน์ ความสูง 4 บรรทัด ความกว้าง 12 คอลัมน์

จากสูตร MATCH(--RIGHT(C$24,1),{1;2;3},0) หมายถึง ให้หาว่า --RIGHT(C$24,1) อยู่ในลำดับที่เท่าไรของ {1;2;3}

จากสูตร --RIGHT(C$24,1) หมายถึงให้อักขระด้านขวาเซลล์ C$24 มาเพียง 1 อักขระแล้วแปลงให้เป็นตัวเลข กรณีเป็น Left ก็จะทำงานตรงกับข้ามกับ Right

ให้ลองแทนค่าสูตรจากด้านในออกด้านนอกหรือจากคำอธิบายนี้ ให้แทนค่าจากด้านล่างขึ้นด้านบน ค่อย ๆ ทำความเข้าใจครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Thu Jan 28, 2016 11:30 pm
by DhitiBank
ขอบคุณอาจารย์มากครับที่เข้ามาอธิบายให้ ผมเพิ่งเสร็จธุระเลยมาตอบสายเลย

แบบนั้นเลยครับ สูตรนี้เป็นสูตรเฉพาะกิจ พอดีเห็นว่าตารางแต่ละตารางมีระยะห่างเท่ากัน หัวตารางเหมือนกัน แถมชื่อตารางยังเป็นใจ เลยพอใช้สูตรแบบคีย์อาร์เรย์เข้าไปได้ (ในสูตร Match) หากเงื่อนไขไม่ใช่แบบนี้สูตรก็จะยากมากจริงๆ ครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Tue Feb 02, 2016 11:27 am
by ake9842
เรียน อาจารย์ทุกท่าน กระผมได้ ทดลองืำความเข้าใจ และปรับปแต่งค่า ให้เหมาะสมกับตารางของตนเองแล้ว แต่ยังไม่ได้ รบกวนขอคำแนะนำจากอาจารย์ด้วยครับ (sheet2)

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Tue Feb 02, 2016 11:50 am
by DhitiBank
เงื่อนไขของตารางใน Sheet2 เปลี่ยนไปแล้ว ชื่อไม่ได้เรียงกัน ระยะห่างระหว่างตารางต่างกับตัวอย่างก่อน จึงไม่สามารถใช้สูตรแบบเดิมได้ ลองเปลี่ยนเป็นแบบนี้ครับ

ที่ C93 คีย์

Code: Select all

=INDEX($D$10:$AH$88,MATCH($B93,$B$12:$B$24,0)+MIN(IF(ISNUMBER(SEARCH(C$91,$D$10:$AH$88)),ROW($D$10:$AH$88)-ROW($D$10)))+2,MATCH(C$92,$D$11:$P$11,0)+MIN(IF(ISNUMBER(SEARCH(C$91,$D$10:$AH$88)),COLUMN($D$10:$AH$88)-COLUMN($D$10))))
กด Ctrl+Shift ค้างไว้ แล้ว Enter
(จะเห็นเครื่องหมายปีกกา { } ขึ้นมาครอบสูตรโดยอัตโนมัติ แสดงว่ากดถูกต้องครับ) เสร็จแล้วคัดลอกลง และคัดลอกไปที่เซลล์ที่เกี่ยวข้องครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Tue Feb 02, 2016 1:30 pm
by ake9842
ขอบคุณท่านอาจารย์มากขอรับ ผมจะพยายามศึกษาให้มากขึ้นกว่านี้ครับ ขอบคุณครับ

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Tue Feb 02, 2016 1:40 pm
by DhitiBank
ยินดีที่ได้แบ่งปันครับ แต่ผมก็เป็นคนที่เข้ามาเรียนเหมือนกัน ไม่ใช่อาจารย์ครับ เห็นคำถามไหนที่พอตอบได้ก็ช่วยตอบครับ :)

Re: สอบถามการ ดึงข้อมูลจากตารางหลายตาราง

Posted: Tue Feb 02, 2016 1:47 pm
by ake9842
ขอบคุณมากครับที่แบ่งปัน ขอนุญาตเรียกอาจารย์ เพราะช่วยชี้แนะ ช่วยแบ่งปันครับ :cp: :cp: :cp: