ใช้ Excel แยก ชื่อ ชื่อกลาง นามสกุล

สิ่งที่ผมมักพบบ่อย ๆ เลย clean data ที่ได้มาทำต่อ ก็มักจะเป็น คนที่ให้ข้อมูลเรามา ใส่ข้อมูล 2 หรือ 3 อย่างไว้ใน cell เดียวกัน 😆

แน่นอนครับ คนเราส่วนมากไม่รู้ตั้งแต่แรกหรอกว่า ควรจะทำ data normalization 😲 ก่อนเก็บข้อมูล

โดยเฉพาะชื่อ-สกุลของคน มาหลากหลายรูปแบบมาก ดังนี้เราจะค่อย ๆ ดูไปทีละแบบเท่าที่เคยเจอมาก็แล้วกัน

😁 เริ่มจากกรณีที่เข้าใจว่า ง่ายที่สุดก่อนก็แล้วกัน

กรณีแรก: ชื่อ-สกุล ไม่มีคำนำหน้า

ชื่อ-สกุลFull Name
ฐิติสร เสถียรไทยThitisorn Sathianthai
แกล้วกล้า วิจิตรพงศ์พันธ์Klaew-kla Vijitpongpun
ธนุธรรม แสนสุรินทร์Tanutam Sansurin
ปุรันต์ โรจนสุขชัยPuran Rojjanasukchai
โมกขเวสา กาสันต์Mokkhavesa Gason
บุปกรณ์ พญาBuppakorn Phaya
ภรา พิชิตPhara Pichit
ธนศร กาญจนพาสน์Tanusorn Kanjanapas
ฐิติวุฒิ แก้วมณีThitiwut Kaewmanee
ทรงพล เตมีรักษ์Songpol Temirak
ปมุต ศุภรัตน์Pamut Suparat
ทัดพงศ์ สิทธิราษฎร์Tadpong Sitdhiras
ปวรุต ประเวศPawarut Praves
ปัณณธร พฤกษาพรรณPannathorn Prugsanapan
เนติวิทย์ มณีรัตนาNetiwit Maneerattana
อรุณ ชื่นจำรัสAroon Cheenchamras
เจริญ ศุภชัยCharoen Supachai
ถวัลย์ วิจิตรพงศ์พันธ์Thawan Vijitpongpun
ปัทมา ทับชุมพรPattama Thabchumpon

กรณีแบบนี้คุณต้องขอบคุณ คนที่ให้ข้อมูลมาเป็นอย่างมาก 🥰 ถือว่า แทบไม่ต้องทำอะไรเพิ่มเลย

มี 2 ทางเลือกใช้เราใช้

  • Text to Column (กด Alt ➡ A ➡ E) หรือไปที่แถบ Data > Text to Column
  • ใช้สูตร

Text to Column

  1. เพิ่มคอลัมภ์เปล่าด้านขวามาอีก 1 คอลัมภ์ หรือ 2 คอลัมภ์ หากมีชื่อกลาง
  2. เลือกคอลัมภ์ “ชื่อ-สกุล” แล้วไปที่แถบ Data > Text to Column หรือกดปุ่ม Alt ▶ A ▶ E
  3. ที่ตัวเลือก เลือกเป็น “Delimited”
  4. เลือกประเภทของ ตัวคั่นข้อมูล (Delimit) ที่เราต้องการ ซึ่งกรณีนี้คือ ช่องว่าง (Space) และอย่าลืม ติ๊ก ที่ Treat consecutive as one เผื่อกรณีที่มี space มากกว่า 1 คั่นระหว่างชื่อ-สกุล แล้วกดปุ่ม Next
  5. เลือกประเภทข้อมูล ซึ่งในที่นี้เป็น “ชื่อ-สกุล” เลือกเป็น Text และเลือก cell ที่เราต้องนำข้อมูลไปใส่ (หลังคำว่า Destination) ในตัวอย่างผมใส่ cell เดิม คือ A1
  6. หากคุณ เลือกให้ข้อมูลทับจุดเดิม จะมีกล่องข้อความเตือนแสดงขึ้นมา ถ้าแน่ในให้ตอบ 🆗 ไป
หน้าต่างเมื่อเรียกใช้ Text to Column
เลือกประเภทของ ตัวคั่นข้อมูล (Delimit) ที่เราต้องการ ซึ่งกรณีนี้คือ ช่องว่าง (Space) และอย่าลืม ติ๊ก ที่ Treat consecutive as one เผื่อกรณีที่มี space มากกว่า 1 คั่นระหว่างชื่อ-สกุล

เลือกประเภทข้อมูล และที่ที่จะให้เขาข้อมูลไปใส่ (หลังคำว่า Destination)

หากคุณเลือกให้ใส่ผลลัพธ์ในช่องที่มีข้อมูลอยู่ จะมีกล่องข้อความเตือนแสดงขึ้นมา เลือก 🆗 ถ้าไม่มั่นใจก็ Cancel แล้วไปเลือก Destination ใหม่นะ 😅
ผลลัพธ์จากการใช้ Text to Column

จะสังเกตได้ว่าถึงจะมี “คำนำหน้า” มาด้วย แต่มีการใช้ space หรือช่องวางคั่นไว้ ก็สามารถใช้ Text to Column เช่นกัน

ใช้สูตรแยก ชื่อ-สกุล

สำหรับการใช้สูตร (formula) จากตัวอย่างเดิม ผมแทรกคอลัมภ์ เพิ่มขึ้นมา B ใช้เก็บชื่อ ส่วน C ใช้เก็บนามสกุล ดังภาพ

การแยกชื่อ-สกุล โดยใช้สูตร โดยใน B3 จะเป็นสูตรที่ใช้ใน B2 และ C3 เป็นที่ใช้ใน C2

สำหรับสูตรแยกชื่อ จะเรียกใช้ฟังก์ชันอยู่ 3 ฟังก์ชัน ก็คือ TRIM(), LEFT(), และ FIND()

ซึ่งอัลกอริทึมก็คือ “ให้นับเอาตัวอักขระจากซ้ายมือไปจนกว่าจะเจอช่องว่าง

สูตรที่ใช้ใน B2 คือ

=TRIM(LEFT(A2,FIND(" ",A2)))

ดังนั้นเราก็เลยฟังก์ชัน LEFT() ซึ่งจะทำหน้าที่เก็บอักขระตั้งแรกตัวแรกไปจนกว่า ฟังก์ชัน FIND() จะพบว่า ช่องว่าง หรือ space อยู่ลำดับที่เท่าไหร่ ซึ่งตรงนี้ใครจะใช้ SEARCH() ก็ได้นะ 😙

และเมื่อได้ข้อความ (ในที่นี้คือ ชื่อ) มาแล้ว เราจะใช้ฟังก์ชัน TRIM() ตัดช่องวาง (space) ส่วนเกินออกไป ไม่ว่าจะอยู่ด้านหน้า ด้านหลัง หรือเกินมาระหว่างคำ (ในภาษาอังกฤษ เพราะภาษาไทยเราไม่ได้เว้นช่อวว่างระหว่างคำ) ก็ตาม ซึ่งถ้าอยู่ระหว่างคำจะเก็บไว้ 1 ช่องว่าง

ส่วนการแยกเอา “นามสกุล” นั้นจะมีอัลกอริทึมกลับกันกับ “ชื่อ” คือ ให้นับเอาอักขระจากขวามือ โดยจำนวนอักขระที่จะเอา เท่ากับความยาวของอักขระทั้งหมดใน cell นั้น ลบด้วยจุดแรกที่พบ ช่องว่าง

สูตรที่ใช้ใน C2 คือ

=TRIM(RIGHT(A2,LEN(A2)-FIND(" ",A2)))

การนับเอาอักขระจากด้านขวามือ เราจะใช้ฟังก์ชัน RIGHT() และมีอีกฟังก์ชันเพิ่มขึ้นมาก็คือ LEN() ซึ่งจะใช้นับจำนวนอักขระที่มีอยู่ใน cell นั้น ๆ และสุดท้ายเราจะใช้ TRIM() ตัดช่องว่างที่เกินมาเหมือนเดิม

กรณีที่สอง: ชื่อ ชื่อกลาง 😮 และสกุล ไม่มีคำนำหน้า

หากทุกคนมีชื่อกลาง เราจะสามารถใช้ Text to Column ได้ แต่ในความเป็นจริง คงไม่เป็นเช่นนั้น ลองดูตัวอย่างนี้

ในกรณีนี้การแยกชื่อกลาง จะมีเงื่อนไขเข้ามาเกี่ยวข้อง

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.