การแยกข้อความจากเซลที่ถูกกด Alt+Enter
เป็นที่ทราบกันอยู่แล้วว่า (หรือถ้ายังไม่ทราบก็จงทราบซะเดี๋ยวนี้ ฮ่าๆๆ) ใน Excel นั้น เราสามารถตัดคำข้อความยาวๆ เพื่อขึ้นบรรทัดใหม่ในเซลเดียวกันได้ เช่นคำว่า

"ทดสอบการพิมพ์ข้อความที่มีการขึ้นบรรทัดใหม่" ให้มีลักษณะเป็น

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


หรือในบางกรณีที่เราไปคัดลอกข้อมูล มาจากหน้าเว็บบางแห่ง พอนำข้อมูลมาวางใน Excel จะพบว่า บางครั้งข้อมูลจะมีการตัดคำ ขึ้นบรรทัดใหม่ในเซลเดียวกัน เหมือนกับเวลาที่เราใช้กด Alt+Enter นั่นเอง


วันนี้ผมเจอคำถามที่เกี่ยวเนื่องมาจากเรื่องที่กล่าวข้างต้น คำถามมีอยู่ว่า

"ผมมีข้อความอยู่ภายในเซล ซึ่งมีการขึ้นบรรทัดใหม่โดยการกด alt+enter ผมต้องการที่จะแยกแต่ละบรรทัด ออกไปไว้ในแต่ละเซล ไม่ทราบว่าต้องทำยังไงครับ..."

เนื่องจากหน้าตาข้อมูลที่ผู้ถามถามมานั้น ข้อความยาวมาก ผมก็เลยขอเปลี่ยนรูปประกอบ ให้มีขนาดกระทัดรัดขึ้น ดังรูปนี้





คำตอบ

การขึ้นบรรทัดใหม่ในเซลเดียวกัน หรือการกดแป้น Atl+Enter นั้น จะมีการแทรก ANSI Code เข้าไป (ANSI Code = 10) เป็นรหัสที่จัดเป็น Non Print Character ดังนั้น เราจะใช้วิธีการเปลี่ยน ANSI Code 10 ดังกล่าว หรือ CHAR(10) ให้เป็น Character ตัวอื่น เช่น ช่องว่าง (Space) คอมม่า (,) หรือเซมิโคล่อน (;) จากนั้นก็ใช้วิธี Text to Column (หรือจะใช้การเขียนสูตรก็ได้) เพื่อแยกข้อความดังกล่าว ให้ไปอยู่คนละคอลัมน์ โดยใช้ Character ตัวใหม่ที่เราเปลี่ยนนี้ เป็นตัวแบ่ง (Delimit)


การเปลี่ยน ANSI Code 10 ไปเป็น Character ตัวอื่น สามารถใช้ฟังก์ชัน =SUBSTITUTE โดยมีรูปแบบการใช้งานดังนี้

=SUBSTITUTE(ข้อความ, คำที่ต้องการค้นหา, แทนที่ด้วยคำว่าอะไร)

จากรูป สมมติว่าข้อความที่มีการตัดคำ อยู่ในเซล B16
ที่เซล C16 เขียนสูตรได้ดังนี้

=SUBSTITUTE(B16, CHAR(10), ";")

ซึ่งในที่นี้ ผมเปลี่ยน CHAR(10) ให้เป็นเซมิโคล่อน (;) จากนั้นก็ใช้วิธี Text to column โดยให้เครื่องหมายเซมิโคล่อน (;) เป็นตัวแบ่ง (Delimit) แล้วแยกข้อความออกเป็น 3 เซล ดังรูปข้างบน

ในกรณีที่ต้องการให้ข้อความเดิมมาเรียงต่อเนื่อง หรือติดกันไป ในเซลเดียวกัน โดยไม่ต้องการแยกเป็นคนละคอลัมน์ ก็สามารถทำได้ด้วยวิธีเดียวกัน ดังนี้

=SUBSTITUTE(B16, CHAR(10), "")
ข้อความ 3 บรรทัดจะมาเรียงชิดติดกัน เป็นบรรทัดเดียว หรือ

=SUBSTITUTE(B16, CHAR(10), " ")
ข้อความ 3 บรรทัดจะมาเรียงกันเป็นบรรทัดเดียว โดยมีช่องว่างคั่นอยู่แต่ละข้อความ


ลองประยุกต์ใช้ดูนะครับ




Create Date : 06 สิงหาคม 2551
Last Update : 31 มกราคม 2552 15:09:40 น.
Counter : 11094 Pageviews.

4 comments
"ฝนหลวงฯ"เตรียมฝึกบินทบทวนประจำปีก่อนลุยปฏิบัติการ สมาชิกหมายเลข 3402302
(7 ม.ค. 2565 16:16:26 น.)
 รีวิว คอนโด BEAT Bangwa Interchange คอนโดพร้อมอยู่ ติดรถไฟฟ้า 2 สาย ใกล้สาทร เพียง 15 นาที*   pizzpure
(7 ม.ค. 2565 18:32:14 น.)
ถนนสายนี้มีตะพาบ ประจำหลักกิโลเมตรที่ 293 : ไม้จิ้มฟัน The Kop Civil
(5 ม.ค. 2565 10:53:00 น.)
หนาวลบ30องค์ศาฯใช่ว่าจะกลัว สมาชิกหมายเลข 4149951
(3 ม.ค. 2565 02:08:05 น.)
  
ขอบคุณสำหรับความรู้นะค่ะ จะเก็บไว้เป็นความรู้ นาชอบเรียนรู้เกี่ยวกับ excel แต่ตอนนี้ตกงานค่ะกลัวจะลืมเหมือนกัน
โดย: nakamuk วันที่: 6 สิงหาคม 2551 เวลา:19:13:04 น.
  
D ค่ะ

หัดเขียนค่ะ อยากจัง

จะเก่ง คงอีกหลายวันค่ะ


เฮ้อออออออ
โดย: Opey วันที่: 8 สิงหาคม 2551 เวลา:9:02:04 น.
  
ขอสอบถามครับ สามารถทำย้อนกลับได้ไหมครับ คือมีอยู่ 3 cell อยากจะรวมให้อยู่ใน Cell เดียวกัน และเรียงบรรทัด ทำได้ไหมครับ
โดย: ปอนด์ IP: 58.137.157.193 วันที่: 1 ตุลาคม 2551 เวลา:22:02:39 น.
  
ตอบคุณปอนด์

ถ้าเอาข้อความที่แยกกันคนละเซลล์มารวมกัน เช่น มีข้อความอยู่ที่ A1, B1 และ C1
ใช้สูตร =A1&B1&C1
โดย: ครูเอก IP: 182.52.0.232 วันที่: 13 พฤษภาคม 2554 เวลา:16:12:33 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Samroeng.BlogGang.com

ครูเอก
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 112 คน [?]

บทความทั้งหมด