: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 อื่นมาเรียงใหม่

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
bboy_access
Member
Member
Posts: 44
Joined: Sat Jan 10, 2015 7:12 am

การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#1

Post by bboy_access »

สวัสดีครับอาจารย์

วันนี้ผมลองดึงข้อมูลจากเว็ปแล้วอยากนำมาเรียงใหม่ให้ได้ตามรูปแบบตามช่องสีเหลือง (ถ้าดึงข้อมูลวันที่ 11 จะมีข้อมูลทั้งหมด 12 แถว ถ้าดึงข้อมูลวันที่ 12 จะมีข้อมูลจากเว็ปทั้งหมด 14 แถว แต่ถ้าถึงข้อมูลวันที่ 13 พบว่ามีข้อมูลจากเว็ปทั้งหมด 17 แถว ปล.ข้อมูลที่ผมดึงมาวันหลังจะทับข้อมูลวันก่อนหน้านะครับ แต่ในที่นี้ผมแยก sheet ให้ดูเข้าใจง่ายครับ ปกติจะมีแค่ 2 sheet คือ sheetเรียงข้อมูล และ sheet ที่ดึงจากเว็ปนะครับ)

ดังนั้นถ้าผมต้องการเฉพาะข้อมูลช่องสีเหลืองมาเรียงใหม่ ผมจะใช้สูตรอะไรที่เหมาะสมครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#2

Post by XDoll »

:D ลองดูครับ
1.สูตรนี้มีข้อจำกัดนิดนึงครับคือ Column A Format ต้องไม่เป็น Text(เนื่องจากถ้าดึงจาก web นั้น ตัวเลขอาจจะเป็น text ได้)
2.ให้ชีทหลักในการ Import เข้ามาเป็นชีท "ดึงจากเว็ปวันที่ 13 " นะครับ (เข้าใจว่าหากดึงมาทับทุกวัน ข้อมูลจะเพิ่มขึ้นเรื่อยๆ และเข้าใจว่าต้องการตัดข้อความออก ซึ่งทำให้แถวเริ่มต้น ในแต่ละวันแถวจะไม่ตรงกัน)

ผมแก้ไขโดยให้เริ่มนับจากแถวแรกในคอลัมน์ A ที่เป็นวันที่

คีย์สูตรที่ชีท "เรียงข้อมูลใหม่" A3 =IFERROR(INDEX('ดึงจากเว็ปวันที่ 13 '!$A$1:$D$100,SMALL(IF(ISNUMBER('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100),ROW('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100)),ROWS(A$3:A3)),COLUMNS($A3:A3)),"") กด Ctrl+Shift ค้างไว้แล้ว Enter คัดลอกไปถึง D3 และลงล่างครับ

*หากข้อมูลมากกว่า 100 แถวให้แก้ไขช่วงที่เป็น สีแดง ได้ครับ
bboy_access
Member
Member
Posts: 44
Joined: Sat Jan 10, 2015 7:12 am

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#3

Post by bboy_access »

ขอบคุณครับ

แต่ถ้าข้อมูลที่ได้มาเป็น Text จะมีวิธีใดบ้างมาแก้ใขครับ
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#4

Post by XDoll »

bboy_access wrote:ขอบคุณครับ

แต่ถ้าข้อมูลที่ได้มาเป็น Text จะมีวิธีใดบ้างมาแก้ใขครับ
หาก Import มาแล้วเป็น txt มี 2 วิธีครับ
1 แก้ที่สูตร
ที่ A3 =TEXT(IFERROR(INDEX('ดึงจากเว็ปวันที่ 13 '!$A$1:$D$100,SMALL(IF(IFERROR(('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100)+0,0)>0,ROW('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100)),ROWS(A$3:A3)),COLUMNS($A3:A3)),""),"dd/mm/yy") กด Ctrl+Shift ค้างไว้แล้ว Enter และลงล่างครับ

ที่ B3 =IFERROR(INDEX('ดึงจากเว็ปวันที่ 13 '!$A$1:$D$100,SMALL(IF(IFERROR(('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100)+0,0)>0,ROW('ดึงจากเว็ปวันที่ 13 '!$A$1:$A$100)),ROWS(B$3:B3)),COLUMNS($A3:B3))+0,"") กด Ctrl+Shift ค้างไว้แล้ว Enter คัดลอกไปถึง D3 และลงล่างครับ

หรือ
2.แก้ที่ต้นทางโดย(ตามภาพครับ)
You do not have the required permissions to view the files attached to this post.
bboy_access
Member
Member
Posts: 44
Joined: Sat Jan 10, 2015 7:12 am

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#5

Post by bboy_access »

ขอบคุณมากๆเลยครับ

แต่ผมเจอปัญหาคือ ผมลองเข้าไปดูที่ Format cell บางช่องดึงมาเป็น "Date" แต่บางช่องดึงมาเป็น "General" สำหรับวันที่ที่ดึงมาเป็น General จะไม่สามารถดึงมาจัดเรียงเลยครับ

รบกวนช่วยดูในไฟล์แนบนะครับ สีเหลืองจะเป็น General ครับ แต่ตัวอื่นจะเป็น Date ครับ ปล.ผมดึงข้อมูลมาครั้งเดียวกันแต่ทำไมไม่อยู่ใน format เดียวกันครับ
You do not have the required permissions to view the files attached to this post.
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#6

Post by XDoll »

:D สาเหตุคงจะเกิดจาก 29/2/2559
เรามองเห็นเป็น พ.ศ. ก็จริงแต่ Excel มองเป็น ค.ศ (นั่นคือ ค.ศ.2559) ซึ่ง วันที่นั้นไม่มีอยู่จริง ทำให้ Excel ไม่สามารถประมวลผลได้ครับ
วิธีแก้ผมไม่แน่ใจ ว่าหากไปเปลี่ยนใน system date ของ windows เป็น พศ. จะหายไหม

ส่วนแนวทางอื่นก็คงต้องแก้สูตรและรอแนวทางจากอาจารย์เพื่อนสามาชิกครับ เดี๋ยวจะกลับมาดูสูตรให้อีกทีครับ
bboy_access
Member
Member
Posts: 44
Joined: Sat Jan 10, 2015 7:12 am

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#7

Post by bboy_access »

ลองเปลี่ยนแล้วครับยังไม่หายเลยครับ
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#8

Post by XDoll »

:D ลองดูตามไฟล์แนบครับ ผมแก้ 29/02/2559 (ดูแล้วจะมีปัญหาเฉพาะวันนี้เท่านั้น) ให้แล้วครับน่าจะใช้ได้นะครับ

วิธีการคือ เปลี่ยน "29/02/2559" เป็นตัวเลขด้วยสูตร SUBSTITUTE(FROMWEB!$A$1:$A$100,"29/02/2559",240756) ครับ ซึ่งสูตรนี้จะใช้ได้ถึงปี พศ. 2562 เท่านั้นครับ (คงไม่ได้ใช้ยาวขนาดนั้น) แต่หากจะใช้ถึงปี 2563 ก็สามารถเปลี่ยนสูตรตรง สีแดง(ตรงพศ.) ได้ครับ

ตามภาพผม ขออนุญาตแก้ไขชื่อชีท เนื่องจากง่ายต่อการอ่านสูตร(ด้วยตา)
You do not have the required permissions to view the files attached to this post.
bboy_access
Member
Member
Posts: 44
Joined: Sat Jan 10, 2015 7:12 am

Re: การนำข้อมูลจาก sheet อื่นมาเรียงใหม่

#9

Post by bboy_access »

ได้ความรู้อีกเยอะเลย


ขอบคุณมากๆครับ
Post Reply