Page 1 of 1
รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Wed Nov 08, 2017 10:58 am
by prasert
ไฟล์ที่ 1 ยอดผู้ใช้บริการทั้งหมดมีทั้งชำระแล้วและยังไม่ได้ชำระ ซึ่งมี 1 ไฟล์ ชื่อไฟล์ "ยอดทั้งหมด"
ไฟล์ที่ 2 ยอดที่ชำระมาแล้วมีหลายไฟล์ จากตัวอย่าง ยกมาแค่ 2 ไฟล์ คือ ยอดชำระแล้ว1 , ยอดชำระแล้ว2
ความต้องการ คือ ต้องการ MATCH ข้อมูลไฟล์ยอดทั้งหมด กับ ไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 จะได้รู้ว่าใครยังไม่ชำระหรือชำระแล้ว
1. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ D กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ E
2. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ D กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ H
3. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ H กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ I
* เมื่อมียอดชำระที่ตรงกัน ให้นำข้อที่ไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ G มาแสดง ที่ไฟล์ ยอดทั้งหมด เพื่อให้รู้ว่ามียอดค้างหรือไม่
รบกวนผู้รู้ช่วยคิดให้ด้วยครับ ขอขอบคุณครับ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Wed Nov 08, 2017 2:44 pm
by parakorn
อ่านแล้วลองเข้าไปดูในไฟล์ก็ยังไม่เข้าใจครับ ยอดทั้งหมดคอลัมน์ D คือวันที่ จะ Match กับ รหัส Hn ได้อย่างไรครับ

Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Thu Nov 09, 2017 8:50 am
by prasert
ขออภัยครับ รีบไปหน่อยเลยตั้งคำถามผิดไปครับ
ต้องการ MACTH ข้อมูลข้ามไฟล์ ซึ่งมีหลายไฟล์
ไฟล์ที่ 1 ยอดผู้ใช้บริการทั้งหมดมีทั้งชำระแล้วและยังไม่ได้ชำระ ซึ่งมี 1 ไฟล์ ชื่อไฟล์ "ยอดทั้งหมด"
ไฟล์ที่ 2 ยอดที่ชำระมาแล้วมีหลายไฟล์ จากตัวอย่าง ยกมาแค่ 2 ไฟล์ คือ ยอดชำระแล้ว1 , ยอดชำระแล้ว2
ความต้องการ คือ ต้องการ MATCH ข้อมูลไฟล์ยอดทั้งหมด กับ ไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 จะได้รู้ว่าใครยังไม่ชำระหรือชำระแล้ว
1. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ F กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ E
2. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ D กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ H
3. ต้องการ MATCH ข้อมูลไฟล์ ยอดทั้งหมดคอลัมน์ H กับไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ I
* เมื่อมียอดชำระที่ตรงกัน ให้นำข้อที่ไฟล์ ยอดชำระแล้ว1 , ยอดชำระแล้ว2 คอลัมน์ G มาแสดง ที่ไฟล์ ยอดทั้งหมด เพื่อให้รู้ว่ามียอดค้างหรือไม่
รบกวนผู้รู้ช่วยคิดหรือชี้นำแนวทางให้ด้วยครับ ขอขอบคุณครับ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Thu Nov 09, 2017 10:43 am
by parakorn
Sheet "ยอดทั้งหมด"
W2 =IFERROR(IFERROR(INDEX([ยอดชำระแล้ว1.xlsx]Sheet1!$G$2:$G$65,MATCH(1,--([ยอดชำระแล้ว1.xlsx]Sheet1!$E$2:$E$65=$F2)*--(ROUNDDOWN([ยอดชำระแล้ว1.xlsx]Sheet1!$H$2:$H$65,0)=$D2)*--([ยอดชำระแล้ว1.xlsx]Sheet1!$I$2:$I$65=$U2),0)),INDEX([ยอดชำระแล้ว2.xlsx]Sheet1!$G$2:$G$80,MATCH(1,--([ยอดชำระแล้ว2.xlsx]Sheet1!$E$2:$E$80=$F2)*--(ROUNDDOWN([ยอดชำระแล้ว2.xlsx]Sheet1!$H$2:$H$80,0)=$D2)*--([ยอดชำระแล้ว2.xlsx]Sheet1!$I$2:$I$80=$U2),0))),"") Ctrl+Shift+Enter+Copy ลงด้านล่างครับ
!
| Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Thu Nov 09, 2017 12:19 pm
by prasert
ขอขอบคุณครับ สำหรับน้ำใจ
แต่ถ้าจะขอรบกวนอีกนิดคงไม่ว่ากันนะครับ ช่วยอธิบายสูตรให้หน่อยได้ไหมครับ เพราะดูแล้วงง ๆ อยู่ และจะได้นำไปใช้งานได้ต่อ ไฟล์ที่จะMacth นั้นมีเยอะมาก ๆ ครับ จะได้ทำความเข้าใจ ก่อนครับ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Thu Nov 09, 2017 2:49 pm
by parakorn
INDEX(ช่วงข้อมูลที่ต้องการค้นหา,บรรทัดที่ต้องการ,[คอลัมน์ที่ต้องการ]) จากสูตรที่สร้างใช้แค่บรรทัดครับ
[ยอดชำระแล้ว1.xlsx]Sheet1!$G$2:$G$65
บรรทัดนี้คือ "ช่วงข้อมูลที่ต้องการค้นหา"
MATCH(1,--([ยอดชำระแล้ว1.xlsx]Sheet1!$E$2:$E$65=$F2)*--(ROUNDDOWN([ยอดชำระแล้ว1.xlsx]Sheet1!$H$2:$H$65,0)=$D2)*--([ยอดชำระแล้ว1.xlsx]Sheet1!$I$2:$I$65=$U2),0))
บรรทัดนี้คือการ ค้นหาเลข 1 จากช่วงข้อมูลที่กำหนด โดยเปลี่ยนช่วงข้อมูลที่ต้องการ หากบรรทัดไหนเข้าเงื่อนไข ให้เป็นจริง(TRUE) แล้วใช้เครื่องหมายตรรกกะคณิตศาสตร์ (เครื่องหมาย --) เปลี่ยน TRUE ให้เป็น 1 (หากเป็นเท็จ หรือ FALSE จะได้ 0)
ซึ่ง ช่วงข้อมูลที่นำมาเปลี่ยน จะมี 3 ช่วงข้อมูลตามที่คุณ prasert ต้องการ แล้วนำช่วงข้อมูลทั้ง 3 มาคูณกัน
ซึ่งหาก บรรทัดไหน คืนค่า ได้เลข 1 ทั้งบรรทัด (ข้อมูลตรงกัน 3อย่าง) 1คูณ1คูณ1 เท่ากับ 1 สูตร(ถ้าเจอ 0 จะเท่ากับ 0 เพราะค่าใดๆคูณ0 เท่ากับ 0 เสมอ)
Match ก็จะหาลำดับ ของบรรทัดนั้น ไปใช้กับช่วงข้อมูลที่ต้องการค้นหาด้านบน ซึ่งผลลัพท์ก็คือ เลขที่บิลที่ต้องการนั่นเองครับ
หากมีไฟล์จำนวนมากอาจต้องใช้วิธีอื่น ลองแนบตัวอย่างมาใหม่ โดยแนบมาหลายๆไฟล์ จะได้ช่วยๆกันดูให้ครับ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Fri Nov 10, 2017 12:35 pm
by prasert
parakorn wrote:INDEX(ช่วงข้อมูลที่ต้องการค้นหา,บรรทัดที่ต้องการ,[คอลัมน์ที่ต้องการ]) จากสูตรที่สร้างใช้แค่บรรทัดครับ
[ยอดชำระแล้ว1.xlsx]Sheet1!$G$2:$G$65
บรรทัดนี้คือ "ช่วงข้อมูลที่ต้องการค้นหา"
MATCH(1,--([ยอดชำระแล้ว1.xlsx]Sheet1!$E$2:$E$65=$F2)*--(ROUNDDOWN([ยอดชำระแล้ว1.xlsx]Sheet1!$H$2:$H$65,0)=$D2)*--([ยอดชำระแล้ว1.xlsx]Sheet1!$I$2:$I$65=$U2),0))
บรรทัดนี้คือการ ค้นหาเลข 1 จากช่วงข้อมูลที่กำหนด โดยเปลี่ยนช่วงข้อมูลที่ต้องการ หากบรรทัดไหนเข้าเงื่อนไข ให้เป็นจริง(TRUE) แล้วใช้เครื่องหมายตรรกกะคณิตศาสตร์ (เครื่องหมาย --) เปลี่ยน TRUE ให้เป็น 1 (หากเป็นเท็จ หรือ FALSE จะได้ 0)
ซึ่ง ช่วงข้อมูลที่นำมาเปลี่ยน จะมี 3 ช่วงข้อมูลตามที่คุณ prasert ต้องการ แล้วนำช่วงข้อมูลทั้ง 3 มาคูณกัน
ซึ่งหาก บรรทัดไหน คืนค่า ได้เลข 1 ทั้งบรรทัด (ข้อมูลตรงกัน 3อย่าง) 1คูณ1คูณ1 เท่ากับ 1 สูตร(ถ้าเจอ 0 จะเท่ากับ 0 เพราะค่าใดๆคูณ0 เท่ากับ 0 เสมอ)
Match ก็จะหาลำดับ ของบรรทัดนั้น ไปใช้กับช่วงข้อมูลที่ต้องการค้นหาด้านบน ซึ่งผลลัพท์ก็คือ เลขที่บิลที่ต้องการนั่นเองครับ
หากมีไฟล์จำนวนมากอาจต้องใช้วิธีอื่น ลองแนบตัวอย่างมาใหม่ โดยแนบมาหลายๆไฟล์ จะได้ช่วยๆกันดูให้ครับ
ขอขอบคุณครับ สำหรับคำแนะนำดี ๆ ครับ
ผมจะแนบตัวอย่างให้ใหม่ครับ
ไฟล์ยอดทั้งหมด ให้ใช้ตัวเดิมครับ เพราะไฟล์นี้ มีไฟล์เดียว
ส่วนไฟล์ยอดชำระ ผมแนบใหม่ STM1 และ STM2 โดยทำการ แยกกันออกไป ZIP เพราะรวมกันแล้วแนบไฟล์ไม่ได้ ปกติจะอยู่โฟลเดอร์เดียวกันครับ ซึ่งมีทั้ง 51 ไฟล์ ครับ รบกวนดูให้ด้วยครับ ขอบคุณครับ
รบกวนดูว่าน่าจะมีวิธีอื่นไหมครับ เพราะ STM ในแต่ละไฟล์ มี 4-5000 เรคคอร์ด
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Fri Nov 10, 2017 12:37 pm
by prasert
ไฟล์แนบ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Sat Nov 11, 2017 4:30 pm
by snasui

การ Match ข้อมูลหลายไฟล์ลักษณะนี้ไม่เหมาะทีจะใช้สูตร เนื่องจากมีไฟล์ที่จะต้องพิจาณาจำนวนมากที่จะนำมา Match กับไฟล์ ยอดทั้งหมด คงต้องหันไปพึ่ง VBA ซึ่งต้องเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Sun Nov 12, 2017 9:24 am
by prasert
ขอขอบคุณครับ
เดี๋ยวจะลองไปศึกษาดูครับ แต่คงยากน่าดู
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Tue Nov 14, 2017 8:10 am
by prasert
ท่านใดมี link ช่วยแนะนำ link ที่เกี่ยวศึกษาเกี่ยวกับ VBA Macth ข้อมูล ลักษณะนี้ได้ไหมครับ
เพราะค้นหามา 2 วันแล้วไม่มีแนวทางเลย
Re: รบกวนสอบถามเรื่อง MATCH ข้อมูลหลายไฟล์
Posted: Tue Nov 14, 2017 8:50 am
by logic
ลำดับแรก เอาข้อมูลมาต่อกันก่อน ดูโพสต์นี้ได้เลยครับ
viewtopic.php?f=3&t=12479&p=76852#p76852
พอได้ข้อมูลมาแล้วแนบไฟล์ที่ได้มาอีกที น่าจะเหลือ 2 ไฟล์คือไฟล์ข้อมูลกับไฟล์ยอดทั้งหมด ถ้าให้ดีกว่านั้นก็ทำให้เหลือไฟล์เดียว ชีตแรกเป็นข้อมูล ชีตทีสองเป็นยอดทั้งหมด ถ้าข้อมูลเยอะให้ตัดมาบางส่วนพอแค่ใช้เป็นตัวอย่าง เพื่อนสมาชิกจะได้ช่วยกันดูให้อีกรอบครับ