หน้าแรก บทความ Microsoft
Microsoft

แยกชื่อ-นามสกุลคนละคอลัมน์ใน Excel ครบทุกรูปแบบ

เผยแพร่ 29 ส.ค. 69

ข้อมูลที่ได้มาบ่อยครั้งเก็บชื่อกับนามสกุลไว้ในเซลล์เดียว เช่น “สมชาย ใจดี” แต่เราต้องแยกเป็นคนละคอลัมน์เพื่อเรียงตามนามสกุล ทำจดหมายเวียน หรือจับคู่กับระบบอื่น บทความนี้รวมสูตรแยกชื่อ-นามสกุลทุกกรณี ทั้งแบบมีคำนำหน้า มีชื่อกลาง และรูปแบบมีจุลภาค

วิธีที่ง่ายที่สุด (Microsoft 365): TEXTBEFORE / TEXTAFTER

B2fx=TEXTBEFORE(A2," ")
A B C
1 ชื่อเต็ม ชื่อ นามสกุล
2 สมชาย ใจดี สมชาย ใจดี
3 วิภาวดี รังสิต วิภาวดี รังสิต

คอลัมน์ B ใช้ =TEXTBEFORE(A2," ") เอาข้อความก่อนช่องว่างแรก คอลัมน์ C ใช้ =TEXTAFTER(A2," ") เอาข้อความหลังช่องว่างแรก ดูรายละเอียดที่ TEXTBEFORE / TEXTAFTER

วิธีคลาสสิก (ทุกเวอร์ชัน): LEFT / MID / FIND

B2fx=LEFT(A2, FIND(" ",A2)-1)
A B C
1 ชื่อเต็ม ชื่อ (LEFT+FIND) นามสกุล (MID+FIND)
2 สมชาย ใจดี สมชาย ใจดี

คอลัมน์ B: FIND(” “,A2) หาตำแหน่งช่องว่าง แล้ว LEFT ดึงตัวอักษรก่อนหน้านั้น คอลัมน์ C: =MID(A2, FIND(" ",A2)+1, LEN(A2)) ดึงตั้งแต่หลังช่องว่างไปจนจบ

กรณีมีชื่อกลาง หรือ นามสกุลหลายคำ

ถ้าชื่ออาจมีมากกว่า 2 ส่วน เช่น “John Michael Smith” ให้ยึด “ช่องว่างสุดท้าย” เป็นตัวแบ่งนามสกุล

C2fx=TEXTAFTER(A2," ",-1)
A B C
1 ชื่อเต็ม ชื่อ + ชื่อกลาง นามสกุล
2 John Michael Smith John Michael Smith

TEXTAFTER(A2," ",-1) คือ “หลังช่องว่างตัวสุดท้าย” ได้นามสกุล ส่วนคอลัมน์ B ใช้ =TEXTBEFORE(A2," ",-1) ได้ทุกอย่างก่อนช่องว่างสุดท้าย

กรณีมีคำนำหน้า เช่น “นาย สมชาย ใจดี”

C2fx=TEXTBEFORE(TEXTAFTER(A2," ")," ")
A B C D
1 ชื่อเต็ม คำนำหน้า ชื่อ นามสกุล
2 นาย สมชาย ใจดี นาย สมชาย ใจดี

คำนำหน้า = TEXTBEFORE(A2," ") / ชื่อ = ข้อความระหว่างช่องว่างที่ 1 กับ 2 / นามสกุล = TEXTAFTER(A2," ",-1)

กรณีรูปแบบมีจุลภาค “ใจดี, สมชาย”

B2fx=TEXTAFTER(A2,", ")
A B C
1 นามสกุล, ชื่อ ชื่อ นามสกุล
2 ใจดี, สมชาย สมชาย ใจดี

ชื่อ = หลัง “, ” / นามสกุล = TEXTBEFORE(A2,",")

ข้อควรระวัง

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line