:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#1

Post by March201711 »

ถ้าเราจะดึงข้อมูล column B (Data A) และ column F (Data B) โดยเอามาไว้ที่ column J (Sum C) ต้องใช้สูตรอะไรคะ


และ ทำไมใช้ Vlookup แล้วข้อมูลที่ดึงมาไม่ตรง
เช่น cell J4 ID#4444 ค่า Fee ตาราง Data B ไม่มี ID นี้ แต่ใช้ Vlookup มันดึงข้อมูลมาให้เฉยเลยค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#2

Post by snasui »

:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ P9:T9 คีย์หัวคอลัมน์เป็น Ref, ID, Ref, Line, Start ตามลำดับ
  2. ที่ R10 คีย์
    =CELL("address",B11)&":"&CELL("address",B32)
    Enter
  3. ที่ R11 คีย์
    =CELL("address",F11)&":"&CELL("address",F35)
    Enter
  4. ที่ S10 คีย์
    =COUNTA(INDIRECT(R10))
    Enter > Copy ลงด้านล่างถึง S11
  5. ที่ S12 คีย์
    =SUM(S10:S11)
    Enter
  6. ที่ T10 คีย์
    =SUM(S$10:S10)-S10+1
    Enter > Copy ลงด้านล่างถึง T11
  7. ที่ P10 คีย์
    =IF(ROWS(P$10:P10)>$S$12,"",LOOKUP(ROWS(P$10:P10),$T$10:$T$11,$R$10:$R$11))
    Enter > Copy ลงด้านล่างจนเห็นเป็นเซลล์ว่าง
  8. ที่ Q10 คีย์
    =INDEX(INDIRECT(P10),COUNTIF($P$10:P10,P10))
    Enter > Copy ลงด้านล่าง
  9. ที่ J11 คีย์
    =IFERROR(INDEX($Q$10:$Q$56,SMALL(IF(FREQUENCY(MATCH($Q$10:$Q$56,$Q$10:$Q$56,0),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROWS(J$11:J11))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  10. ที่ K11 คีย์
    =IFERRORLOOKUP(CHAR(255),CHOOSE({1,2},VLOOKUP(J11,$B$11:$C$32,2,0),VLOOKUP(J11,$F$11:$G$35,2,0))),"")
    Enter > Copy ลงด้านล่าง
  11. ที่ L11 คีย์
    =IFERROR(VLOOKUP(J11,$B$11:$D$32,3,0),0)
    Enter > Copy ลงด้านล่าง
  12. ที่ M11 คีย์
    =IFERROR(VLOOKUP(J11,$F$11:$H$35,3,0),0)
    Enter > Copy ลงด้านล่าง
ที่ Vlookup แล้วได้คำตอบไม่ตรงเพราะเป็นการ Lookup แบบใกล้เคียง (ไม่ใส่ส่วนประกอบสุดท้ายของ Vlookup) ในขณะที่คอลัมน์แรกของ Table Array ใน Vlookup ไม่ได้เรียงจากน้อยไปหามากครับ

งานลักษณะนี้ควรนำ ID และ Name มาต่อกันด้วยการ Copy > Paste แล้วค่อย Remove Duplicate ผ่านเมนู Data ส่วนที่เหลือค่อยทำเป็นสูตร อีกวิธีใช้การประยุกต์ใช้ Consolidate และหากสูตรลักษณะนี้ยังทำงานได้ช้าก็ต้องเขียน VBA ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#3

Post by March201711 »

ค่ะอาจารย์ :D ขอบคุณที่ให้คำแนะนำ จะลองไปปรับใช้ดูก่อนค่ะว่าช้าไปหรือป่าวค่ะ :D
Supachok
Gold
Gold
Posts: 1014
Joined: Wed Jun 18, 2014 11:11 am
Excel Ver: 2013

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#4

Post by Supachok »

E11

=COUNTIF($F$11:$F$36,B11)
จะเห็น Text ที่ไม่มีใน List ที่ 2
จากนั้น sort - และ copy

วิธีนี้คิดว่าคำนวนไม่ช้าและขั้นตอนมีอยู่บ้าง
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#5

Post by March201711 »

อาจารย์คะ อยากให้ cellสุดท้ายที่หาเป็นสูตรให้หาค่าสุดท้าย เพราะต้องมานั่งแก้ในสูตร ข้อมูลมีเป็นพันๆกว่ารายการเลยค่ะ
ที่ R10 คีย์
=CELL("address",B11)&":"&CELL("address",B32)
Enter
ที่ R11 คีย์
=CELL("address",F11)&":"&CELL("address",F35)
Enter
และ
ที่ J11 คีย์
=IFERROR(INDEX($Q$10:$Q$56,SMALL(IF(FREQUENCY(MATCH($Q$10:$Q$56,$Q$10:$Q$56,0),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROWS(J$11:J11))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ที่ K11 คีย์
=IFERRORLOOKUP(CHAR(255),CHOOSE({1,2},VLOOKUP(J11,$B$11:$C$32,2,0),VLOOKUP(J11,$F$11:$G$35,2,0))),"")
Enter > Copy ลงด้านล่าง
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#6

Post by snasui »

March201711 wrote: Sun Sep 09, 2018 11:57 am อาจารย์คะ อยากให้ cellสุดท้ายที่หาเป็นสูตรให้หาค่าสุดท้าย เพราะต้องมานั่งแก้ในสูตร ข้อมูลมีเป็นพันๆกว่ารายการเลยค่ะ
ที่ R10 คีย์
=CELL("address",B11)&":"&CELL("address",B32)
Enter
ที่ R11 คีย์
=CELL("address",F11)&":"&CELL("address",F35)
Enter
และ
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ R10 คีย์
    =CELL("address",B11)&":"&CELL("address",INDEX(B:B,MATCH(9.99999999999999E+307,B:B)))
    Enter
  2. ที่ R11 คีย์
    =CELL("address",F11)&":"&CELL("address",INDEX(F:F,MATCH(9.99999999999999E+307,F:F)))
    Enter
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#7

Post by March201711 »

ค่ะ และที่ cell
ที่ J11 คีย์
=IFERROR(INDEX($Q$10:$Q$56,SMALL(IF(FREQUENCY(MATCH($Q$10:$Q$56,$Q$10:$Q$56,0),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROW($Q$10:$Q$56)-ROW($Q$10)+1),ROWS(J$11:J11))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ที่ K11 คีย์
=IFERRORLOOKUP(CHAR(255),CHOOSE({1,2},VLOOKUP(J11,$B$11:$C$32,2,0),VLOOKUP(J11,$F$11:$G$35,2,0))),"")
Enter > Copy ลงด้านล่าง

ต้องปรับสูตรอย่างไรคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#8

Post by snasui »

:D แนบไฟล์ล่าสุดมาด้วยจะได้ปรับต่อไปจากนั้นครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#9

Post by March201711 »

ค่ะ และถ้าจะให้เรียงข้อมูลที่ column J จากน้อยไปมา ต้องปรับสูตรอย่างไรคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#10

Post by snasui »

:D ตัวอย่างการปรับสูตรที่ J11 ครับ

=IFERROR(INDEX($P$10:$P$5000,SMALL(IF(FREQUENCY(IF($P$10:$P$5000<>"",MATCH($P$10:$P$5000,$P$10:$P$5000,0)),ROW($P$10:$P$5000)-ROW($P$10)+1),ROW($P$10:$P$5000)-ROW($P$10)+1),ROWS(J$11:J11))),"")

ส่วนการเรียงให้ดึงข้อมูลนั้นไปแสดงพื้นที่อื่นก่อนแล้วค่อยนำมาเรียงด้วย Small หรือ Large ในคอลัมน์ J ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#11

Post by March201711 »

ค่ะ แล้ว column K ล่ะคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#12

Post by snasui »

March201711 wrote: Sun Sep 09, 2018 1:44 pm ค่ะ แล้ว column K ล่ะคะ
:D คลุมข้อมูลเผื่อไปเท่าที่คิดว่าข้อมูลจะขยายไปถึงได้เลยครับ

ที่จริงแล้วสูตรใด ๆ สามารถทำลักษณะนี้ได้ มีบางกรณีเท่านั้นที่อาจจะต้องปรับเช่นการทำ Unique List เป็นต้น
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#13

Post by March201711 »

ค่ะ ขอบคุณมากค่ะอาจารย์
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#14

Post by Bo_ry »

J11 ลองใส่ตามนี้ ลากลง
=IFERROR(INDEX($P$10:$P$99,MATCH(0,INDEX((COUNTIF($P$10:$P$99,"<"&$P$10:$P$99)-SUMPRODUCT(COUNTIF($J$10:J10,$P$10:$P$99)))/($P$10:$P$99<>""),),0)),"")
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#15

Post by snasui »

Bo_ry wrote: Sun Sep 09, 2018 3:00 pm J11 ลองใส่ตามนี้ ลากลง
=IFERROR(INDEX($P$10:$P$99,MATCH(0,INDEX((COUNTIF($P$10:$P$99,"<"&$P$10:$P$99)-SUMPRODUCT(COUNTIF($J$10:J10,$P$10:$P$99)))/($P$10:$P$99<>""),),0)),"")
:D สูตรลักษณะ Match(0,Countif...) นี้จะมีข้อด้อยอยู่ 3 ประการครับ
  1. ใช้พลังประมวลผลสูง
  2. มีปัญหากับตัวเลขที่จัดเก็บเป็น Text
  3. กรณีข้อความมีเครื่องหมาย > หรือ < นำหน้าจะแสดงผลลัพธ์ผิดพลาด
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#16

Post by March201711 »

แล้วถ้าใช้สูตร array กับ สูตรลักษณะ Match(0,Countif...) อันไหนดีกว่ากันคะ แบบว่าประมวลได้เร็วไม่หน่วงๆช้าๆน่ะค่ะอาจารย์ :roll:
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#17

Post by snasui »

:D ลองกับข้อมูลจริงได้เลย จะได้ทราบความแตกต่างครับ

การใช้สูตร Array ผมเคยแจ้งไปแล้วว่าขึ้นอยู่กับสูตรนั้น ๆ ไม่ใช่ว่าเป็นสูตร Array แล้วจะช้าไปทุกสูตรครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#18

Post by March201711 »

ลองใช้สูตร Match(0,Countif...) แล้วข้อมูลมาไม่ครบค่ะ :flw:
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#19

Post by Bo_ry »

ทำใหม่ที่ column W:AB ค่ะ
Book4.xlsx
You do not have the required permissions to view the files attached to this post.
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: ดึงข้อมูลแต่ละตารางมารวมที่ตารางเดียว

#20

Post by March201711 »

ทำแล้วค่ะ แต่มีข้องความ excel ขึ้นเตือนน่ะล่ะ ตามที่แนบ excel ค่ะ และประมวลปลช้าๆหนืดๆค่ะ
You do not have the required permissions to view the files attached to this post.
Post Reply