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 ได้อย่างไรครับ :flw:

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 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร 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
:D การ 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 ไฟล์คือไฟล์ข้อมูลกับไฟล์ยอดทั้งหมด ถ้าให้ดีกว่านั้นก็ทำให้เหลือไฟล์เดียว ชีตแรกเป็นข้อมูล ชีตทีสองเป็นยอดทั้งหมด ถ้าข้อมูลเยอะให้ตัดมาบางส่วนพอแค่ใช้เป็นตัวอย่าง เพื่อนสมาชิกจะได้ช่วยกันดูให้อีกรอบครับ