ในการทำงานกับ Excel หรือ Google Sheet ถ้ามีชื่อสกุลและคำนำหน้าชื่อติดกันอยู่ เราจะเขียนสูตรในการแยกคำนำหน้า ออกมาจากชื่อ แบบนี้ได้อย่างไร [บทความนี้มีคำตอบ]
ผมมีตัวอย่างให้ลองทดสอบ และ copy สูตรในไฟล์ Excel นี้นะครับ ดาวน์โหลดแล้วเอาไปลองทำตามกันดู
ก่อนอื่นเริ่มจากตารางที่มีชื่อสกุลและคำนำหน้าติดกันก่อนนะครับ (อยู่ใน Sheet ชื่อ ไฟล์สำหรับฝึกหัดทำตามบทความ) กรณีคำนำหน้าและชื่อแยกกัน 1 ช่อง จะทำให้เวลาแยกแล้ว จะมีช่องว่างหน้าชื่อ 1 ช่องครับ แบบนี้
เมื่อพร้อมแล้วก็มาเริ่มลุยกันเลยครับ
ฟังก์ชันที่เราจะใช้มีด้วยกันเพียง 5 ฟังก์ชัน คือ IFS, MID, FIND, LEN, LEFT
- ฟังก์ชัน IFS (มี S) ด้วยคือ ฟังก์ชันหลายเงื่อนไข เพราะว่า การแยกคำหรือนับคือ เด็กชาย เด็กหญิง นาย นาง นางสาว มีด้วยกันถึง 5 ตัว ก็เลยต้องใช้ IFS ครับ แต่ถ้าอยากรู้ว่า IF กับผองเพื่อนเป็นอย่างไร ก็ไปดูบทความของคุณศิระได้ครับผม
- ฟังก์ชัน MID (แปลตรงๆ ว่า กลาง) คือเอาไว้ส่งกลับข้อความ โดยต้องรู้ว่าจะเริ่มเอาจากอักขระตัวที่เท่าไร และเอามากี่ตัว เช่น =MID(A2,8,7)
จากภาพ จะเห็นว่า =MID(A2,8,7) ส่งค่ากลับมาเป็น มนัสกวี เพราะว่า ความยาว (LEN) ของ เด็กชาย คือ 7 เราจะไปตัดเอาตัวที่ 8 แล้วเอามาจำนวน 7 อักขระ เราก็เลยได้ มนัสกวี นั่นเอง
- ฟังก์ชัน FIND คือ ฟังก์ชันที่ส่งค่ากลับเป็นตัวเลข โดยจะบอกว่า ค้นหาข้อความหรืออักขระอะไร ว่าอยู่ตำแหน่งไหนในข้อความที่ค้นเจอ แล้วส่งกลับมาเป็นตำแหน่ง ตัวอย่างเช่น Find(“เด็กหญิง”,A6)
จากสูตร Find(“เด็กหญิง”,A6) เป็นการหาว่า เด็กหญิง อยู่ตำแหน่งที่เท่าไรของคำว่า เด็กหญิงมานี จำเป็นเลิศ ซึ่งจะได้คำตอบเป็น 1 เพราะอยู่ตำแหน่งที่ 1 แต่ถ้าหาแค่อักขระเดียว เช่น =FIND(“ญ”,A7) จากคำว่า เด็กหญิงสมหญิง จำได้ดี จะได้ผลลัพธ์เป็น 6 เพราะว่า ญ ตัวแรกที่เจอจะอยู่ตัวที่ 6
- ฟังก์ชัน LEFT คือฟังก์ชันที่ดึงเอาตัวอักษรออกมาจากข้อความโดยนับจากทางซ้ายมือ ว่าจะเอาออกมาเป็นจำนวนกี่ตัว เช่น =LEFT(A8,8) จะได้ผลลัพธ์ เด็กหญิง
=LEFT(A8,8) จะได้ผลลัพธ์ เด็กหญิง เพราะว่าดึงอักษรออกจากคำว่า เด็กหญิงอารียา จำปาหลง นับจากทางซ้ายมาเป็นจำนวน 8 ตัว ซึ่งคำว่า เด็กหญิง มีความยาก (LEN=8) ตัวนั่นเองครับ
หมายเหตุ : ยังมีอีกฟังก์ชัน RIGHT ทำหน้าที่ทำนองเดียวกัน แต่จะทำการดึงตัวอักษรออกมาจากทางขวามือแทนนะครับ
เมื่อทำความเข้าใจฟังก์ชันต่างๆ แล้วเราจะเอามารวมกันกลายเป็นสูตรในการแยกคำนำหน้าดังนี้ครับ
แยกคำนำหน้า โดยใช้คำสั่งดังภาพ
=IFS(LEFT(A2,7)=”เด็กชาย”,”เด็กชาย”,LEFT(A2,8)=”เด็กหญิง”,”เด็กหญิง”,LEFT(A2,3)=”นาย”,”นาย”,LEFT(A2,6)=”นางสาว”,”นางสาว”,LEFT(A2,3)=”นาง”,”นาง”)
อธิบายเพิ่มเติมคือ ใช้ IFS เพราะเราจะใช้กับหลายๆ เงื่อนไขครับ ถ้าตรวจช่อง A2 แล้วอักขระด้านซ้ายจำนวน 7 ตัวเป็นคำว่า เด็กชาย ก็ให้ใส่คำว่า เด็กชาย แต่ถ้าตรวจสอบอักขระด้านซ้ายจำนวน 8 ตัวว่าเป็น เด็กหญิง ก็ให้ใส่คำว่า เด็กหญิง เป็นแบบนี้กับคืออื่นๆ ด้วยทำนองเดียวกันไปจนครบคำว่า นาง เลยครับ
ต่อไปจะเป็นการวาง ชื่อ และนามสกุล โดยใช้สูตรดังนี้
=IFS(B2=”เด็กชาย”,MID(A2,FIND(B2,A2)+7,50),B2=”เด็กหญิง”,MID(A2,FIND(B2,A2)+8,50),B2=”นาย”,MID(A2,FIND(B2,A2)+3,50),B2=”นางสาว”,MID(A2,FIND(B2,A2)+6,50),B2=”นาง”,MID(A2,FIND(B2,A2)+3,50))
อธิบายสูตรคือ ใช้ IFS กับหลายๆ เงื่อนไข เช่นเดิมนะครับ ตรวจสอบเงื่อนไขแรกว่า ถ้า B2 เป็น เด็กชาย แล้ว ให้ไปเอาตัวอักษรมาจาก A2 เป็นจำนวน FIND(B2,A2)+7 ตัว ซึ่งจะพบว่า FIND(B2,A2)+7 = 8 นั่นคือ การไปตัดเอาชื่อ และนามสกุลออกมาตั้งแต่ตัวที่ 8 เป็นจำนวน 50 ตัว (เผื่อๆ ชื่อและนามสกุลยาวๆ) ทำนองเดียวกัน เงื่อนไขที่สอง ถ้า B2=”เด็กหญิง”,MID(A2,FIND(B2,A2)+8,50) นั่นคือ การตรวจสอบว่า เป็นเด็กหญิง ใช่ไหม ถ้าใช่ก็ให้ตัดคำออกตั้งแต่ตัวที่ 9 เป็นต้นไป และทำนองเดียวกันกับเงื่อนไขอื่นๆ ครับ
เราก็จะได้สูตรเอาไว้คำนวณเพื่อแยกคำนำหน้า และ ชื่อสกุลออกจากกันแล้วครับ
บทความนี้มีการบ้านให้ลองฝึกฝนกันด้วยนะครับ ถ้ามีคำนำหน้าเพิ่มอีก ตามภาพ จะเขียนสูตรว่าอย่างไร ถ้าทำได้แล้วคอมเมนท์ไว้ใต้บทความได้เลย มีของแจก 555+
Discover more from KruJakkrapong 's Blog
Subscribe to get the latest posts sent to your email.