10 ส.ค. 2023 เวลา 09:15 • ไอที & แก็ดเจ็ต

แยกชื่อ - นามสกุล ใน google sheet

หนึ่งในข้อมูลที่พบมากที่สุดก็คือ 'ชื่อ' และ 'นามสกุล' วันนี้เรามาดูสูตรที่เกี่ยวข้องกัน
1) นำข้อมูล 'ชื่อ' และ 'นามสกุล' ที่อยู่คนละเซลล์มาต่อกันให้อยู่ในเซลล์เดียว
ภาพที่ 1
สมมติว่าเรามีข้อมูล 'ชื่อ' และ 'นามสกุล' ตามภาพที่ 1 เราต้องการให้ 'ชื่อ' และ 'นามสกุล' มาต่อกัน แสดงผลอยู่ในเซลล์เดียว
การนำค่าในเซลล์มาเขียนต่อกัน เราจะใช้สัญลักษณ์ & เชื่อมระหว่างแต่ละค่า ดังนั้นสูตรที่ได้คือ
=A2&B2
ภาพที่ 2
แต่เราต้องการให้มีเว้นวรรคระหว่าง 'ชื่อ' และ 'นามสกุล' ด้วย เราจะปรับสูตรใหม่เป็น
=A2&" "&B2
ภาพที่ 3
ทำเช่นเดียวกันกับข้อมูลอื่น ๆ โดยการคัดลอกสูตรลงมา หรือปรับเป็นสูตร array คือ
=INDEX(A2:A8&" "&B2:B8)
ภาพที่ 4
ถ้าหากข้อมูลมีคำนำหน้าด้วยดังภาพ
ภาพที่ 5
ก็ใช้สูตร
=A2&B2&" "&C2
ภาพที่ 6
จากนั้นปรับสูตรให้เป็น array จะได้
=INDEX(A2:A8&B2:B8&" "&C2:C8)
ภาพที่ 7
2) แยก 'ชื่อ' และ 'นามสกุล' ในเซลล์เดียวกันออกเป็นหลายเซลล์
สมมติว่าเรามีข้อมูล 'ชื่อ - นามสกุล' ที่ต่อกันดังภาพ
ภาพที่ 8
หากเราต้องการแยก 'ชื่อ' และ 'นามสกุล' ออกจากกันสามารถทำได้หลายวิธี
2.1)วิธีแรก ค้นหาตำแหน่งเว้นวรรคภายในคำด้วยสูตร FIND แล้วแยกกลุ่มหน้ากับกลุ่มหลังออกด้วยสูตร LEFT และ MID
สูตรสำหรับการแยกชื่อคือ
=LEFT(A2,FIND(" ",A2)-1)
ภาพที่ 9
ปรับเป็นสูตร array จะได้สูตรคือ
=INDEX(LEFT(A2:A8,FIND(" ",A2:A8)-1))
ภาพที่ 10
สำหรับ 'นามสกุล' ใช้สูตรว่า
=MID(A2,FIND(" ",A2)+1,99)
ภาพที่ 11
ปรับเป็นสูตร array ได้เป็น
=INDEX(MID(A2:A8,FIND(" ",A2:A8)+1,99))
ภาพที่ 12
2.2) ใช้สูตร SPLIT
=SPLIT(A2," ")
ภาพที่ 13
ทั้ง 'ชื่อ' และ 'นามสกุล' จะถูกแยกออกมา โดยมีตัวคั่นคือ " "
ปรับเป็นสูตร array จะได้เป็น
=INDEX(SPLIT(A2:A8," "))
ภาพที่ 14
2.3) วิธีที่ 3 ใช้ Regular expression หรือที่เรียกสั้น ๆ ว่า REGEX
โดยจะใช้สูตร REGEXTRACT โดยใช้สูตร REGEX คือ "(.+) (.+)"
  • . คืออะไรก็ได้ยกเว้นขึ้นบรรทัดใหม่
  • + คืออย่างน้อย 1 ตัว
  • ( ) คือตัวที่ต้องการให้แสดงผล
ได้สูตรคือ
=REGEXEXTRACT(A2,"(.+) (.+)")
ภาพที่ 15
ปรับเป็น array ได้สูตรคือ
=INDEX(REGEXEXTRACT(A2:A8,"(.+) (.+)"))
ภาพที่ 16
3) แยก 'คำนำหน้า', 'ชื่อ' และ 'นามสกุล'
หากเรามีข้อมูลดังภาพ แล้วเราต้องการแยก 'คำนำหน้า', 'ชื่อ' และ 'นามสกุล' ออกมา
ภาพที่ 17
จริง ๆ แล้วก็ทำได้หลายวิธี ในที่นี้จะใช้ REGEXTRACT โดยใช้สูตรคือ
=REGEXEXTRACT(A2,"(นางสาว|นาง|นาย)([^ ]+) (.+)")
  • "นางสาว|นาง|นาย" หมายถึง 'นางสาว' หรือ 'นาง' หรือ 'นาย' ก็ได้ ซึ่งถ้ามีคำนำหน้าอื่นที่ต้องการแยกก็สามารถเพิ่มไปที่ส่วนนี้
  • [^ ] หมายถึง ไม่เอาเว้นวรรค
ภาพที่ 18
ปรับเป็นสูตร array จะได้เป็น
=INDEX(REGEXEXTRACT(A2:A9,"(นางสาว|นาง|นาย)([^ ]+) (.+)"))
ภาพที่ 19
เสร็จเรียบร้อย
หากพบว่าบทความนี้เป็นประโยชน์ แชร์ให้ด้วยนะฮับ
โฆษณา