Page 1 of 1

ดึงข้อมูล (สูตร)

Posted: Fri Aug 03, 2018 11:11 am
by revotion
ขอสอบกวนสอบถามหน่อยครับอยากจะดึงข้อมูลมี 2 กรณีดังนี้
1. กรณีที่ 1 ดึงข้อมูลภาย Workbook (ไฟล์ ดึงข้อมูล กรณี 1)
- อยากจะดึงข้อมูลภายใน Workbook ,ชีทตัวอย่างคำตอบ ที่ตำแหน่งอ้างอิง A4 แล้วให้ผลลัพธ์ออกมาอย่างในตัวอย่างคำตอบครับ
2. กรณีที่ 2 ดึงข้อมูลข้าม Workbook (ไฟล์ ดึงข้อมูล กรณี 2)
- อยากจะดึงข้อมูลข้าม Workbook โดยใช้ฐานข้อมูลของไฟล์ ดึงข้อมูล กรณี 1 โดยที่ไม่ต้องเปิดไฟล์ฐานข้อมูลครับ

Re: ดึงข้อมูล (สูตร)

Posted: Fri Aug 03, 2018 7:18 pm
by snasui
:D การที่จะดึงข้อมูลมาเช่นนั้นได้ มีเงื่อนไขคืออะไรบ้าง ดูจากเซลล์ไหน ดึงข้อมูลไหนมาจากชีตไหน กรุณาระบุมาด้วยครับ

Re: ดึงข้อมูล (สูตร)

Posted: Fri Aug 03, 2018 8:17 pm
by revotion
ต้องขออภัยครับที่อธิบายไม่ละเอียด
เซลล์อ้างอิงจะอยู่ที่ AA-04 ของชีต "ตัวอย่างคำตอบ "
หลักๆแล้วดึงมาจากชีต "ข้อมูลครับ "
เมื่อพิมพ์ที่เซลล์ A4 ชีต "ตัวอย่างคำตอบ" AA-04 จะให้ดึงข้อมูล
1. ชื่อลูกค้า ,ที่อยู่ , เลขประจำตัว โดยที่ชีตข้อมูลจะมีชื่อย่อของแต่ละบริษัท ที่คอลัมน์ B ซึงฐานข้อมูลของลูกค้าจะอยู่ที่
ชีตลูกค้า ซึ่งชื่อย่อของบริษัทอยู่ที่ คอลัมน์ B คือ นายก. , นายข. นายค. นายง.
2. ลำดับ , รายการ , จำนวน , ราคา/หน่วย ซึ่ง
- ลำดับรายการ ดึงมาจากชีตข้อมูลที่คอลัมน์ F
- รายการ ดึงมาจากชีตข้อมูลที่คอลัมน์ E
- จำนวน ดึงมาจากชีตข้อมูลที่คอลัมน์ G
- ราคา/หน่วย ดึงมาจากชีตข้อมูลที่คอลัมน์ H
ดังตัวอย่างคำตอบในไฟล์ครับ

ซึ่งกรณีที่ 2 ก็ใช้ฐานข้อมูลของอันนี้ครับเพียงแต่ต้องการแยกไฟล์ฐานข้อมูลกับ ไฟล์ดึงข้อมูลออกจากกันโดยที่ไม่ต้องเปิด
ไฟล์ฐานข้อมูลครับ

ปล.ถ้ามีข้อมูลหลักแสน row สูตรพวกนี้จะทำงานช้าหรือไม่ครับ

Re: ดึงข้อมูล (สูตร)

Posted: Fri Aug 03, 2018 8:45 pm
by snasui
:D ตัวอย่างสูตรครับ

E3 คีย์

=VLOOKUP(INDEX(ข้อมูล!$B$2:$B$12,MATCH($A$4,ข้อมูล!$D$2:$D$12,0)),ลูกค้า!$B$2:$G$5,2,0)

Enter > Copy ไปใช้กับเซลล์ด้านล่างที่เกี่ยวข้องโดยเปลี่ยนเฉพาะค่าที่ระบายสีให้ตรงกับคอลัมน์ต้นทาง

ยกเลิกการ Merge เซลล์ ที่ B11 จากนั้นคีย์สูตร

=IFERROR(INDEX(ข้อมูล!$F$2:$F$12,SMALL(IF(ข้อมูล!$D$2:$D$12=$A$4,ROW(ข้อมูล!$D$2:$D$12)-ROW(ข้อมูล!$D$2)+1),ROWS(B$11:B11))),"")

Ctrl+Shift+Enter > Copy ลงด้านล่าง > Copy ไปคอลัมน์ที่เหลือโดยยกเลิกการ Merge เซลล์เสียก่อนเช่นกัน จากนั้นเปลี่ยนช่วงเซลล์ที่ระบายสีในสูตรให้เป็นช่วงเซลล์ต้นทางที่ต้องการ

เมื่อเขียนสูตรเรียบร้อยแล้วสามารถ Merge เซลล์ไว้ตามเดิม

การ Link ข้ามไฟล์ให้เปิดไฟล์ขึ้นมาพร้อมกันแล้วค่อยเขียนสูตร หากต้องการจะดูลักษณะสูตรที่เป็นการ Link ข้ามไฟล์ให้ Save ไฟล์นี้ไปเป็นไฟล์สำรองเสียก่อนแล้วเปิดไฟล์สำรองและ Cut สูตรในชีต ตัวอย่างคำตอบ ไปยังไฟล์อื่น จากนั้นสังเกตการอ้างอิงในสูตร

การแยกไฟล์ฐานข้อมูลกับไฟล์แสดงผลสามารถแยกได้ ไม่มีปัญหา แต่การเขียนสูตรใด ๆ ก็ตามอย่าพยายามเขียนสูตรอ้างอิงข้ามไฟล์ที่กำลังปิดเพราะจะเขียนได้ยากเสียเวลามาก เปิดขึ้นมาเขียนสูตรให้เรียบร้อยก่อนแล้วค่อยปิดไฟล์ฐานข้อมูลครับ

สูตรที่กดแป้นแบบ Ctrl+Shift+Enter เป็นสูตร Array ข้อมูลแค่ 1 หมื่นบรรทัดก็จะช้าแล้วครับ

Re: ดึงข้อมูล (สูตร)

Posted: Fri Aug 03, 2018 9:06 pm
by revotion
ตรงกับความต้องการครับ แต่คำนวณช้านิดๆ