: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

ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#1

Post by wimon »

เรียนอ.คนควนที่เคารพ
อ้างถึงหัวข้อกระทู้: การนำข้อมูลจากหลาย Sheet มาต่อกันใน Sheet เดียวเมื่อ: 27 มิ.ย. 2011 21:43 ของคุณ anny happy ทำให้ผมคิดอยากจะต่อยอดความรู้ และนำสูตรของอ.มาทดลองทำดู คือสูตร =IF($I2="","",IF(INDIRECT("'"&$I2&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN()),1,"")&COUNTIF($I$2:$I2,$I2)+1)="","",INDIRECT("'"&$I2&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN()),1,"")&COUNTIF($I$2:$I2,$I2)+1)))
กรณี File ที่ผมได้แนบมาหากจะดัดแปลงสูตรให้ดึงข้อมูลจากSheet1 เพื่อมาจัดเรียงบรรทัดใหม่ต่อเนื่องกันและตัดบรรทัดว่าง และข้อความบางบรรทัดออกตามต้องการ รายละเอียดตามเอกสารแนบ ขอความกรุณาอ.ช่วยต่อยอดความรู้ให้ด้วยครับ
ขอแสดงความนับถือ
Wimon
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30738
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#2

Post by snasui »

:lol: ดึงออกมาให้เรียงกันตามปกติในชีทใดชีทหนึ่งก่อน แล้วค่อยใช้อีกชีทจัดการอีกทอดจะง่ายกว่ากันมากครับ การเขียนสูตรทีเดียวให้ดึงมาเฉพาะเซลล์ที่มีข้อมูลต้องใช้สูตร Array เข้ามาช่วย กรณีข้อมูลจำนวนมากจะทำให้คำนวณนานโดยไม่จำเป็น อีกประการฟังก์ชัน Address และ Indirect เป็น Volatile Function ทั้งคู่ คือถูกสามารถถูกกระทบเปลี่ยนแปลงได้โดยง่าย ควรจะใช้งานเท่าที่จำเป็นเท่านั้นครับ :mrgreen:
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#3

Post by wimon »

เรียนอาจารย์คนควน
ดึงออกมาให้เรียงกันตามปกติในชีทใดชีทหนึ่งก่อน แล้วค่อยใช้อีกชีทจัดการอีกทอดจะง่ายกว่ากันมากครับ การเขียนสูตรทีเดียวให้ดึงมาเฉพาะเซลล์ที่มีข้อมูลต้องใช้สูตร Array เข้ามาช่วย

รับทราบครับอ.ควน จากข้อความที่อ.แนะมาข้างต้นเพื่อเป็นการต่อยอดความรู้ผมเรียนถามดังนี้
1.หากมีความต้องการดึงข้อมูลจาก Sheet1 ดึงออกมาให้เรียงกันตามปกติในชีดใดชีทหนึ่งก่อน อ.พอจะแนะนำวิธีดึงตามปกติเพื่อให้เรียงตามSheet ที่ต้องการ ช่วยแนะนำวิธีทำของอาจารย์เพื่อประกอบความรู้ด้วยครับ และมีกี่วิธี หรือมี แหล่ง link ใดที่จะศึกษาเพิ่มเติมบ้าง กรุณาแนะนำด้วย
2.หากดึงออกตามปกติที่อาจารย์แนะนำแล้ว ขั้นตอนอีก Sheet อ.จะใช้ผูกสูตรอะไรอีกทอด ครับ
3.ผมอยากได้รับความรู้เป็นอย่างมากและSheet 1 เพราะไม่ค่อยให้เจอบ่อยนัก หากจะขอความกรุณาอาจารย์ช่วยเขียนสูตรทีเดียวให้ดึงมาเฉพาะเซลล์ที่มีข้อมูลต้องใช้สูตร Array เข้ามาช่วย ขอความกรุณาอาจารย์ด้วยครับอยากรู้มากๆ
ขอแสดงความนับถือ
wimon
User avatar
snasui
Site Admin
Site Admin
Posts: 30738
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#4

Post by snasui »

:D คิดว่าน่าจะเข้าใจไปคนละทางครับ

สิ่งที่คุณ wimon ต้องการเป็นแบบใดระหว่าง 2 แบบด้านล่าง (เนื่องจากไปอ้างอิง Link การนำข้อมูลมาต่อกันจากหลาย ๆ ชีท แต่ที่ถามมาล่าสุด เป็นการดึงมาจาก Sheet1 เท่านั้น)

1. ดึงข้อมูลหลายชีทมาต่อกันโดยนำเฉพาะบรรทัดที่มีข้อมูลมาเท่านั้น
2. ต้องการเขียนที่ชีทเดียวไม่ต้องมีชีทสำหรับต่อข้อมูลก่อน

หรือ

1. ดึงข้อมูลจากชีทใด ๆ ที่มีบรรทัดว่าง โดยดึงมาเฉพาะเซลล์ที่มีข้อมูล
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#5

Post by wimon »

เรียนอ.คนควน
ต้องการดึงข้อมูลจาก Sheet1 ออกมา โดยนำไปไว้อีก Sheet (เหมือนกับตัวอย่างใน Sheetชื่อ แบบที่ต้องการ) ครับ ตาม File แนบ
ขอแสดงความนับถือ

Wimon

หมายเหตุ เหตุที่ต้องอ้างอิง หัวข้อกระทู้: การนำข้อมูลจากหลาย Sheet มาต่อกันใน Sheet เดียวเมื่อ: 27 มิ.ย. 2011 21:43 ของคุณ anny happy เพราะเหตุว่ากระทู้ดังกล่าวใกล้เคียง คล้ายๆ กับ File ที่ผมแนบไปครับ และได้ทดลองนำสูตรที่อ.ตอบของกระทู้คุณ anny happy ลองทำดูแต่ก็ไม่สำเร็จครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30738
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#6

Post by snasui »

ลองตามไฟล์แนบครับ

1. ที่ แบบที่ต้องการดึงมาจากSheet1 ซลล์ A4 คีย์

=COUNTIF(Sheet1!B5:B65536,"<9.99999999999999e307")

Enter

2. ที่ แบบที่ต้องการดึงมาจากSheet1 ซลล์ B6 คีย์

=IF(ROWS(B$6:B6)>$A$4,"",INDEX(Sheet1!B$6:B$100,SMALL(IF(ISNUMBER(Sheet1!$B$6:$B$100),ROW(Sheet1!$B$6:$B$100)-ROW(Sheet1!$B$6)+1),ROWS(B$6:B6))))

Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
You do not have the required permissions to view the files attached to this post.
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#7

Post by wimon »

เรียนอ.คนควน

สูตรที่อาจารย์ให้มาเป็นความรู้อย่างมากหลังจากการแกะสูตรโดยการกด F9 ดู ผมขออนุญาตอาจารย์กรุณาช่วยให้คำแนะนำเพิ่มเติม กรณีหากต้องการให้ Cell A2:K(N) ของSheetชื่อแบบที่ต้องการดึงมาจากSheet1 เขียนเป็นสูตรดึงข้อมูลจากShee1 โดยตรงทั้งหมดโดยไม่ต้องพิมพ์ manual รายละเอียดผมได้อธิบายไว้เพิ่มเติมตาม File แนบครับ

ขอแสดงความนับถือ
Wimon
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30738
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#8

Post by snasui »

:D สำหรับหัวคอลัมน์ที่ไม่ได้มีความหลากหลาย ผมไม่เห็นความจำเป็นว่าต้องเขียนสูตรดึงมาครับ ข้อมูลที่ดึงมานี้ควรเป็น Database ก่อนเพื่อที่จะนำไปใช้เป็นรายงานหรือทำอย่างอื่นต่อไป หัว Field จึงควรมีแค่ 1 บรรทัด จึงเห็นว่าไม่มีความจำเป็นต้องเขียนสูตรครับ นอกจากนี้บรรทัดที่ 5 ก็ไม่ควรเป็นบรรทัดว่างด้วยครับ

การเขียนสูตรเพื่อจะให้ไม่แสดงเลข 0 หากว่าข้อมูลต้นทางเป็นค่าว่าง ลองปรับสูตรมาดูก่อนครับ ติดตรงไหนค่อยมาดูกันต่อครับ :mrgreen:
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#9

Post by wimon »

เรียนอ.คนควน
ขอบคุณอ.มากๆครับสำหรับคำแนะนำ
-สำหรับไม่แสดงค่าผมใช้แบบวิธีBasic โดยการ Conditional ในการจัด Format โดยไม่ได้แก้ไขสูตรครับ
-สำหรับเรื่องหัว Columns ผมเห็นด้วยกับคำแนะนำของอ.ทุกประการ ครับเพราะการทำงานของสูตรควรเน้นหลักง่ายๆไว้ก่อนข้อมูลในการทำงานคำนวนจะได้ไม่ช้าตามที่อ.เคยแนะนำเสมอ แต่สำหรับ Case เป็นด้วยความอยากรู้ อยากศึกษาสูตร เหมือนกับทำเรื่องง่ายๆให้เป็นเรื่องยาก :mrgreen: จึงขอความกรุณาอ.ช่วยแนะนำอีกสักครั้งครับ ขอเป็นสูตรอ.ช่วยกรุณาด้วยครับ

หมายเหตุ สำหรับสูตรที่อาจารย์ให้มาก่อนหน้านี้ถือว่าใช้งานได้ตรงตามที่ต้องการแล้วครับขอบคุณครับ
ขอแสดงความนับถือ
Wimon
User avatar
snasui
Site Admin
Site Admin
Posts: 30738
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#10

Post by snasui »

:D ลองตามนี้ครับ

ที่ชีท แบบที่ต้องการดึงมาจากSheet1 เซลล์ A2 คีย์

=INDEX(Sheet1!A:A,MATCH(1,INDEX(ISTEXT(Sheet1!A:A)+0,0),0))

Enter > Copy ไปใช้กับเซลล์อื่น ๆ ที่ต้องการแสดงหัวคอลัมน์

กรณีมีค่าผิดพลาดสามารถใช้ IF เข้าไปดักได้ครับ ซึ่งสูตรก็จะยาวกว่าเดิม การหาค่าแบบนี้ทำได้หลายสูตร และสูตรนี้ได้ปรับให้ไม่ต้องกดแป้น Ctrl+Shift+Enter
wimon
Member
Member
Posts: 22
Joined: Sat Aug 07, 2010 8:58 pm

Re: ขอคำแนะนำสูตรดึงข้อมูลต่าง Sheet เพื่อจัดเรียงบรรทัดใหม่

#11

Post by wimon »

เรียนอ.คนควน
ขอขอบพระคุณเป็นอย่างสูงครับผมจะนำสูตรที่อ.ให้ไปต่อยอดต่อตามที่แนะนำครับ และหวังว่า Case ที่ผมได้ตั้งกระทู้ไปคงเป็นประโยชน์สำหรับเพื่อนสมาชิกเช่นกัน
ขอแสดงความนับถือ
Wimon
Post Reply