: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

ต้องการแตกข้อมูลที่คั่นด้วย comma แล้วเรียงใหม่ในแนวตั้ง

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
nook
Member
Member
Posts: 2
Joined: Fri Aug 24, 2012 9:51 am

ต้องการแตกข้อมูลที่คั่นด้วย comma แล้วเรียงใหม่ในแนวตั้ง

#1

Post by nook »

ขอผู้รู้ช่วยหน่อยค่ะ
ต้องการแตกข้อมูลที่คั่นด้วย comma แล้วเอามาเรียงใหม่ในแนวตั้ง โดยเอาข้อมูลทั้งหมดมาต่อๆกันในแนวตั้ง ดังตัวอย่างไฟล์ที่แนบค่ะ โดยซ้ายมือคือข้อมูลเดิม และ ขวามือคือสิ่งที่ต้องการค่ะ

ตอนนี้ใช้วิธีการ text to column เพื่อแยกข้อมูลออกเป็นคนละ column แล้ว copy > paste special > transpose ทีละตัว แต่ข้อมูลจริงๆมีเยอะมาก ก็ใช้เวลาค่อนข้างมากอยู่ อยากขอวิธีที่เร็วกว่านี้น่ะค่ะ

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
ChoBkuN
Member
Member
Posts: 239
Joined: Tue Nov 29, 2011 3:43 pm

Re: ต้องการแตกข้อมูลที่คั่นด้วย comma แล้วเรียงใหม่ในแนวตั้ง

#2

Post by ChoBkuN »

ขั้นตอนครับ
1. หาจำนวนรายชื่อของแต่ละ Vendor
C2 key =LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1
Copy ลงข้างล่าง
แล้วก็ Sum บรรทัดสุดท้าย เพื่อหาบรรทัดทั้งหมดที่จะ List

2. หาบรรทัดที่จะให้เริ่ม Vendor รายใหม่
D2 key =SUM($C$2:C2)-C2+1
Copy ลงข้างล่าง

3. หาจำนวนตัวอักษรของแต่ละคน ของแต่ละ Vendor
E2 key =IFERROR(IF(F2<>F1,SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),1),SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),E1+1)),LEN(LOOKUP(F2,$A$2:$A$16,$B$2:$B$16))+1)
Copy ลงข้างล่าง
ถ้าเป็น 2003 ให้ใช้
=IF(ISERROR(IF(F2<>F1,SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),1),SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),E1+1))),LEN(LOOKUP(F2,$A$2:$A$16,$B$2:$B$16))+1,IF(F2<>F1,SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),1),SEARCH(",",LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),E1+1)))
Copy ลงข้างล่าง



4. List Vendor
F2 key =IF(ROWS($F$2:F2)>$C$17,"",LOOKUP(ROWS($F$2:F2),$D$2:$D$16,$A$2:$A$16))
*อ้างอิงยอด Sum จากข้อแรกครับ
Copy ลงข้างล่าง


5. List Name
G2 key =MID(LOOKUP(F2,$A$2:$A$16,$B$2:$B$16),IF(F2<>F1,1,E1+1),IF(F2<>F1,E2-1,E2-E1-1))
Copy ลงข้างล่าง


ป.ล. ดัดแปลงมากจาก การนำข้อมูลหลายชีทมาต่อรวมกัน
http://snasui.blogspot.com/2009/12/sheet-sheet.html
You do not have the required permissions to view the files attached to this post.
nook
Member
Member
Posts: 2
Joined: Fri Aug 24, 2012 9:51 am

Re: ต้องการแตกข้อมูลที่คั่นด้วย comma แล้วเรียงใหม่ในแนวตั้ง

#3

Post by nook »

ขอบคุณมากค่ะ ช่วยได้มากๆเลย
Post Reply