3/04/2562

แยกชื่อและนามสกุล



โดยปกติการป้อนข้อมูลใน Excel ควรป้อนแยกเซลให้เป็นข้อมูลหน่วย่อยที่สุดที่ยังคงมีความหมาย เช่น ชื่อนามสกุล ก็ควรป้อนแยกคำนำหน้า ชื่อ และนามสกุลออกจากกัน เพื่อให้สามารถนำไปประมวลผลได้ง่าย แต่ก็พบว่าผู้ใช้ Excel จำนวนมาก มักจะป้อนรวมในเซลเดียว ดังตัวอย่าง



การประมวลข้อมูลข้างต้น ควรแยกคำนำหน้า ชื่อ และนามสกุลออกจากกัน โดยเนื้อหานี้ขอนำเสนอวิธีการแยกชื่อ (รวมคำนำหน้า) ออกจากนามสกุลด้วยความสามารถแปลงข้อความเป็นคอลัมน์ – Text to columns ก่อน



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



เลือกเมนูคำสั่ง Data, Text to columns



จากภาพโปรแกรมจะสอบถามว่า “ระหว่างข้อมูลที่จะแยก ใช้เงื่อนไขใดระหว่างตัวคั่น – Delimited หรือจำนวนอักขระ – Fixed width” กรณีให้เลือกเป็น Delimited จากนั้นคลิกปุ่ม Next



จอภาพถัดไป โปรแกรมจะให้ระบุว่า “ตัวคั่น” ที่ใช้คืออะไร กรณีนี้เลือกเป็น ช่องว่าง หรือ Space จะพบว่าโปรแกรมแยกชื่อและนามสกุลออกเป็น 2 ส่วน คลิกปุ่ม Finish จะปรากฏผล ดังนี้



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

จากเนื้อหา “แยกชื่อและนามสกุล” ที่ได้แนะนำไปก่อนหน้า หากมีเนื้อหาดังตัวอย่าง



จากเนื้อหา “แยกชื่อและนามสกุล” ที่ได้แนะนำไปก่อนหน้า หากมีเนื้อหาดังตัวอย่าง





และต้องการแยกคำนำหน้าชื่อ ชื่อ และนามสกุลเป็น 3 คอลัมน์ ดังนี้





จะต้องใช้ฟังก์ชันหลายฟังก์ชัน รวมทั้งเทคนิคการคำนวณแบบ Array ของ Excel ผสมผสานกัน โดยเริ่มต้นจาก





1) สร้างตารางข้อมูลเก็บคำนำชื่อที่เป็นไปได้ (สามารถเพิ่มเติมได้ภายหลัง)





จากนั้นกำหนด Range name ให้กับช่วงข้อมูลของรายการคำนำหน้าชื่อ กรณีตัวอย่างกำหนดชื่อ nametitle ให้กับช่วง B2:B10 ด้วยคำสั่ง Formulas, Define Name





2) เมื่อกำหนดพื้นที่รายการคำนำหน้าชื่อแล้ว ขั้นถัดไปก็จะเป็นการดึงนามสกุลออกมาก่อน ด้วยคำสั่ง =RIGHT(A2,LEN(A2)-FIND(” “,A2))





คำสั่ง =RIGHT(A2,LEN(A2)-FIND(” “,A2)) ประกอบด้วยคำสั่งซ้อน 3 คำสั่งคือ RIGHT, LEN และ FIND โดยมีความหมาย คือ
นำข้อมูลมาแสดงโดยดึงค่าจากตำแหน่งขวาสุด คำสั่ง RIGHT ที่มีรูปแบบคำสั่ง คือ =RIGHT(text,num_chars)
Text คือสตริงข้อความที่มีอักขระที่ต้องการแยก
num_chars ระบุจำนวนอักขระที่ต้องการแยก
กรณีนี้ num_chars ได้จากสูตร =LEN(A2)-FIND(” “,A2) คือเอาจำนวนอักขระทั้งหมด (LEN) มาลบด้วยตำแหน่งของช่องว่าง (FIND)
จำนวนอักขระทั้งหมด =LEN(A2) เท่ากับ 15
ตำแหน่งช่องว่าง =FIND(” “,A2) คิอ 7
15 – 7 = 8
ดังนั้นคำสั่ง RIGHT จึงเปรียบได้กับ =RIGHT(A2,8) นั่นเอง … ซึ่งหมายถึง ให้นำอักขระ 8 อักขระมาแสดงโดยดึงจากด้านขวาของข้อมูล


3) ดึง “ชื่อ” ออกมาใส่ในคอลัมน์ D ด้วยคำสั่ง =SUBSTITUTE(RIGHT(A2,MIN(LEN(SUBSTITUTE(A2,nametilte,””)))),E2,””)





โดยสูตรนี้ต้องป้อนแบบ Array ซึ่งก็คือการกดปุ่ม Ctrl + Shift + Enter แทนการกด Enter ปกติ โดยสูตรที่สูตร จะต้องมีเครื่องหมาย { } กำกับหน้าหลัง ดังนี้





4) จากนั้นจึงเป็นการดึงคำนำหน้า ด้วยคำสั่ง =SUBSTITUTE(SUBSTITUTE(A2,D2,””),E2,””)





เพียงเท่านี้ก็จะสามารถดึงค่าดังกล่าวออกมาได้ตามต้องการ สำหรับการนำไปใช้ ขอแนะนำให้ใช้การเลือกข้อมูลคำนำหน้า ชื่อ นามสกุลแล้วคัดลอก (Copy) จากนั้นนำไปวางแบบ “เฉพาะค่า Value” ก่อนประมวลผลนะครับ


หมายเหตุ … สูตรที่ใช้ในข้อ 3 และะ 4 ขอไม่อธิบายรายละเอียด อยากแนะนำให้ลองศึกษาและฝึกทีละคำสั่งดูนะครับ เพื่อให้เกิดความเข้าใจด้วยตนเอง