Page 1 of 1
การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมกันใน
Posted: Tue Dec 31, 2013 8:33 pm
by artosp
รบกวนท่านอาจารย์และท่านผู้รู้ครับ
ขออภัย ที่ถามไม่ถูกช่วงเวลาครับ พอดีเกิดแรงบันดาลใจที่จะปรับปรุงการทำงานของตัวเองในช่วงปีใหม่นี้ครับ
ปัญหา
- ต้องดึงข้อมูลตอบกลับ จากลูกน้อง 30คน(ประมาณ 60ไฟล์) ทุกๆเดือน เพื่อมาวิเคราห์ ทำให้ดึงไม่ทันครับ ปัจจุบันใช้การ Copy ทีละไฟล์มาต่อกันในชีทเดียว
คำถาม
1. หากเราต้องการดึงข้อมูลจากไฟล์ที่ลูกน้อง กรอกใส่ตารางที่มีหัวตารางเหมือนๆกันจากหลายๆคน มาสรุปรวมที่ชีทเดียว พอจะมีวิธีไหมครับ
(ในไฟล์แนบ ให้ชีท Final แทนชีทรวม และ ชีท A B Cแทน ไฟล์ของแต่ละคนครับ)
2.ถือโอกาส ฤกษ์ดีปีใหม่ เริ่มต้นสิ่งใหม่ๆ หากท่านอาจารย์ทั้งหลาย มีวิธีแนะนำที่จะทำให้รวบรวมข้อมูลง่ายกว่านี้ ไม่ว่าจะสูตร หรือ โปรแกรมต่างๆ ผมยินดีไปศึกษาต่อครับ
สุดท้ายนี้ ขอขอบคุณทุกท่าน และอวยพรให้ปีใหม่นี้สุขภาพแข็งแรง ร่ำรวยเงินทอง สุขภาพแข็งแรง ตั้งมั่นในความดีและมีน้ำใจ สุขสมหวังตลอดไป
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Tue Dec 31, 2013 9:50 pm
by snasui
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Wed Jan 01, 2014 8:38 pm
by artosp
>> ผมลองทำตามวิธีนี้ โดยใช้ไฟล์ของเจ้าของกระทู้แล้วทำตาม ผลคือทำได้ครับ แต่พอทำในไฟล์ผมกลับไม่ได้อะครับ
>> เริ่มทำตามไม่ได้ตั้งแต่ขั้นตอนที่ 3 (ค่าเป็นศูนย์ครับ)
ปล.ผมแยกไฟล์ ออกเป็น 3ไฟล์ข้อมูลดิบ(A B C) และ 1 ไฟล์รวมข้อมูล (Final) ครับ
อ้างอิงวิธีที่อาจารย์แนะนำจากลิงค์ด้านบนครับครับ
จากตัวอย่างไฟล์ที่แนบมา ในไฟล์ รวมรายงานทั้งหมด.xlsx ชีท รวมรายงานทั้งหมด ลองตามนี้ครับ
1.เซลล์ Y1:Y3 กรอกชื่อไฟล์ตั้นทางทั้งสามไฟล์โดยต้องระบุนามสกุลไฟล์ด้วย เช่น 11.พฤศจิกายน WPC.xlsx
2.เซลล์ Z1:Z3 กรอกชื่อชีทของไฟล์ต้นทาง เช่น รวมรายเดือน
3.เซลล์ AA1 คีย์สูตร
=COUNT(INDIRECT("'["&Y1&"]"&Z1&"'!a5:a1000"))
Enter > Copy ไปถึง AA3
4.เซลล์ AA4 คีย์สูตร
=SUM(AA1:AA3)
Enter
5.เซลล์ AB1 คีย์สูตร
=SUM(AA$1:AA1)-AA1+1
Enter > Copy ไปถึง AB3
6.เซลล์ V3 คีย์สูตร
=IF(ROWS(V$3:V3)>$AA$4,"",LOOKUP(ROWS(V$3:V3),$AB$1:$AB$3,"["&$Y$1:$Y$3&"]"&$Z$1:$Z$3))
Enter > Copy ลงด้านล่างตามต้องการ
7.เซลล์ A3 คีย์สูตร
=IF($V3<>"",INDIRECT("'"&$V3&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")&COUNTIF($V$3:$V3,$V3)+4),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Wed Jan 01, 2014 8:40 pm
by artosp
แนบไฟล์ที่ใช้รวมเพิ่ม ครับ
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Wed Jan 01, 2014 8:55 pm
by snasui
ปรับสูตรเป็นตามด้านล่างครับ
- เซลล์ AA1 ปรับสูตรเป็น
=COUNTA(INDIRECT("'["&Y1&"]"&Z1&"'!b3:b1000"))
Enter > Copy ลงด้านล่าง
- เซลล์ B3 ปรับสูตรเป็น
=IF($V3<>"",INDIRECT("'"&$V3&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")&COUNTIF($V$3:$V3,$V3)+2),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Wed Jan 01, 2014 9:08 pm
by artosp
ทำได้แล้วครับอาจารย์ ขอบคุณมากๆครับ
รบกวนถามเพิ่มหน่อยครับ ว่าเลข 4 หรือ 2 ที่เปลี่ยนคืออะไรเหรอครับ เพื่อผมมีการปรับตารางจะได้ไม่พลาดครับ
ขอบคุณครับ
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Wed Jan 01, 2014 9:46 pm
by snasui
เป็นเลขสำหรับการเริ่มบรรทัดของข้อมูลครับ
จากสูตร
=COUNTIF($V$3:$V3,$V3)+2
หมายถึงเป็นการเริ่มข้อมูลในบรรทัดที่ 3
สำหรับ COUNTIF($V$3:$V3,$V3) ให้ผลลัพธ์เป็น 1 และเมื่อ Copy ลงด้านล่างจะเพิ่มค่าขึ้นทีละ 1 จนกว่าคอลัมน์ V จะกลายเป็นค่าใหม่ ก็จะเริ่มนับใหม่สำหรับค่านั้น เป็นเช่นนี้ไปเรื่อย ๆ ครับ
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Thu Jan 02, 2014 3:58 pm
by artosp
อาจารย์ครับ ผมลองปรับค่าในสูตรข้อที่ 7 ตามฟอร์มงานของผมแล้ว (ข้ออื่นทำตามได้หมดครับ) ปรากฏว่าไม่สามารถทำได้ครับ ผมเปลี่ยนเลข + สุดท้ายเป็น +10 ถูกต้องไหมครับ ถ้ามันคือบรรทัดเริ่มข้อมูล (A10)
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Thu Jan 02, 2014 7:45 pm
by snasui
ช่วยแนบตัวอย่างไฟล์ AAA, BBB, CCC มาด้วยครับ
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Sat Jan 04, 2014 10:36 pm
by artosp
ขอโทษที่ตอบช้าครับอาจารย์
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Sat Jan 04, 2014 11:01 pm
by snasui
ลองตามนี้ครับ
- เซลล์ AT10 ปรับสูตรเป็น
=IF(ROWS(AT$10:AT10)>$AZ$4,"",LOOKUP(ROWS(AT$10:AT10),$BA$1:$BA$3,"["&$AX$1:$AX$3&"]"&$AY$1:$AY$3))
Enter > Copy ลงด้านล่าง
- เซลล์ A10 ปรับสูตรเป็น
=IF($AT10<>"",INDIRECT("'"&$AT10&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")&COUNTIF($AT$10:$AT10,$AT10)+9),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
ช่วยอ่านทบทวนที่ผมอธิบายไปด้านบนอย่างละเอียดจะได้เข้าใจว่าทำไมไม่บวกด้วย 10
Re: การดึงข้อมูลที่มีหัวตารางเหมือนกัน ในหลายๆไฟล์ ให้มารวมก
Posted: Sat Jan 04, 2014 11:41 pm
by artosp
ขอโทษและขอบคุณครับท่านอาจารย์
>>ผมอ่านไม่ละเอียดเองครับ เริ่มแถวที่10 ก็ต้อง +9 ถึงจะถูกใช่ไหมครับ
>>ผมจะนำข้อชี้แนะไปทำไฟล์ตัวสำเร็จเลยครับ หากติดขัดประการใดจะขอกลับมารบกวนถามอีกครั้งครับ (จะพยายามหาวิธีแก้เองก่อนให้มากที่สุดครับ)
ขอบคุณท่านอาจารย์อีกครั้งครับ