นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 7461
ความเห็น: 6

จัดการชื่อคนใน Excel แบบครบวงจร

จริง ๆ แล้วผมจะเขียนแยกไปอีกบันทึก แต่ผิดพลาดทางเทคนิค ไปเขียนทับในบันทึกเก่า อ่านแล้วอาจทำให้งงว่าทำไม comment ไม่ตรงกับเนื้อหา T_T แม่นแล้ว ผมผิดเองครับ

สืบเนื่องจากที่เขียนไว้วันก่อน ที่ผมเล่าถึงการเรียงชื่อคนใน Excel ว่า ทำแบบเร็ว ๆ จะทำยังไง

ก็มาเขียนเป็นตอนสอง

แต่จริง ๆ แล้วผมจะเขียนแยกไปอีกบันทึก แต่ผิดพลาดทางเทคนิค ไปเขียนทับในบันทึกเก่าตอน 1 (กู้คืนไม่ได้ซะแหล่ว)

โอ้ ว้าว... 

T_T อ่านแล้วอาจทำให้งงว่าทำไมเนื้อหาในเรื่อง จึงเหมือนเขียนหลัง comment

...แม่นแล้ว ผมผิดเองครับ...

ไหน ๆ ก็ไหน ๆ ตกกระไดพลอยกระโจน ทำเนียน ๆ เขียนไปเลยก็แล้วกัน

ตอนที่แล้ว ผมเล่าว่า สมมติว่าชื่อคนพร้อมคำนำหน้าอยู่ช่อง A2

เราจะแคะส่วนที่เป็นชื่อคนออกมาได้ด้วยการไปที่อีกเซลล์ คือ B2 (หรือที่อื่นก็ได้) แล้วพิมพ์

                    = TRIM(MID(A2,ตัวเลขเริ่มต้น, 200))

ตัวเลขเริ่มต้นคือ 4 สำหรับ นาย หรือ นาง

ตัวเลขเริ่มต้นคือ 5 สำหรับ น.ส.

ตัวเลขเริ่มต้นคือ 7 สำหรับ นางสาว

คำว่า MID เป็นคำสั่งแคะข้อความ เริ่ม ณ ตำแหน่งที่ต้องการ ดึงมากี่ตัวอักษรก็ได้ ในที่นี้ ดึงมา 200 ตัว จะได้แนะใจว่า เก็บชื่อสกุลได้หมดแน่ (จริง ๆ 100 ตัวก็เหลือเฟือ แต่เผื่อมีคนที่ชื่อหรือสกุลยาวมาก ๆ ไว้ก่อน เอาแบบมั่นใจเต็มที่เลยดีกว่า)

คำว่า TRIM เป็นการกำจัดช่องไฟที่นำหน้าหรือตามหลังข้อความ จะทำให้รูปแบบออกมาสวย เป็นระเบียบ

สืบเนื่องจากพี่ panyarakมาช่วยเติมเต็มในช่วงท้ายของบันทึกเก่าว่า สูตรแบบเอนกประสงค์กว่า น่าจะมีหน้าตาอย่างไร (อ่านได้จาก comment ท้าย blog นี้ครับ ข้างล่าง)

สูตรนี้ดี มีศักยภาพซ่อนเร้นเยอะ แต่ถ้าใช้เพื่อแค่เรียงชื่อคน ก็เป็นการย่ำยีของดีไปหน่อย

อย่ากระนั้นเลย ลองมาดูว่า สูตรนี้จะทำอะไรได้อีก

ถ้าเป็นผม ผมจะเอามาใช้จัดการชื่อคนแบบครบวงจรครับ



ลองดูกรณีตามรูปนะครับ

เรามีชื่อดั้งเดิมอยู่ เริ่มที่ A2

(ผมไม่เริ่ม A1 เพราะเก็บไว้พิมพ์ชื่อคอลัมน์)

B2 เราจะใช้สูตรที่พี่ panyarak ใส่ไว้

ทวนอีกที โดยผมปรับอ้างอิงเซลล์เรียบร้อยแล้ว copy จากแชร์ไปแปะได้เลย

ใน B2 (เป็นชื่อที่ตัดคำนำหน้า) พิมพ์ว่า

=IF(LEFT(A2,6)="นางสาว",TRIM(MID(A2,7,200)),IF(LEFT(A2,4)="น.ส.",TRIM(MID(A2,5,200)),TRIM(MID(A2,4,200))))

ใน C2 (นำหน้าชื่อ) พิมพ์ว่า

=TRIM(LEFT(A2,FIND(B2,A2,1)-1))

ใน D2 (ดึงมาเฉพาะส่วนของชื่อ) พิมพ์ว่า

=LEFT(B2,FIND(" ",B2,1)-1)

ใน E2  (ดึงมาเฉพาะส่วนของนามสกุล) พิมพ์ว่า

=MID(B2,FIND(" ",B2,1)+1,200)

 ทำเก็บไว้บรรทัดเดียว ที่เหลือก็คัดลอกเอา

 

ลองมาดูคำอธิบายนะครับ ว่าอะไรทำอะไร

 

TRIM เป็นการสั่งลบช่องไฟ (space bar) ที่นำหน้าหรือตามหลังข้อความ

MID(text, start, length) เป็นการสั่งแคะข้อความ text โดยเริ่มตั้งแต่อักษรตัวที่ start นับไป length

LEFT คล้ายกับ MID แต่เริ่มนับตั้งแต่ตัวแรกด้านซ้าย

เช่น MID(ข้อความ, 1, 3) จะเหมือน LEFT(ข้อความ, 3) คือแคะ 3 ตัวแรกออกมา

FIND เป็นการตรวจว่า มีข้อความแบบหนึ่ง ซ่อนในอีกข้อความหนึ่ง เริ่มตั้งแต่ตรงไหน

 

เวลาจะหาว่า ชื่อคนเริ่มตรงไหน ก็ใช้วิธีตรวจดูว่า นำหน้า เป็นคำว่า นาย นาง นางสาว น.ส. แล้วเริ่มตัดข้อความหลังจากนั้น ก็จะเหลือส่วนชื่อสกุล

ถ้าเราตัดชื่อสกุลแล้ว ที่เหลือ ก็จะเป็นคำนำหน้า

ตัดชื่อออกจากสกุลได้อย่างไร ?

ตรงนี้จะต่างจากละครทีวี ตรงที่ละครทีวี ใช้วิธีเฉดหัวคนออกจากตระกูล ถือว่า เป็นการทำให้ชื่อกับสกุลขาดกัน

อ้า..เราไม่โหดแบบนั้นครับ

ชื่อกับสกุล ตามปรกติ คั่นกันด้วยการเว้นช่องไฟ (1 เคาะ หรือ " ")

เราก็มองหาว่า ช่องไฟในชื่อสกุล อยู่ตำแหน่งไหน

ด้านหน้าช่องไฟ ก็เป็นชื่อ

ด้านหลังช่องไฟ ก็เป็นสกุล

ใช้คำสั่ง FIND หาตำแหน่งช่องไฟ แล้วสั่งตัดเป็นสองชิ้น ชิ้นหน้าคือชื่อ ชิ้นหลัง คือนามสกุล

ทำแบบนี้ จะทำให้เราสามารถจัดการชื่อสกุลได้แบบครบวงจร

 

หมวดหมู่บันทึก: พัฒนางานประจำ
คำสำคัญ (keywords): excel
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ Copyright
สร้าง: 05 ตุลาคม 2552 09:29 แก้ไข: 16 ตุลาคม 2552 14:52 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ขอบคุณครับ

เป็นการแก้ปัญหาที่เยี่ยมมาก

มีปัญหาในเรื่องนี้เหมือนกัน...แต่แก้ปัญหาแบบคนขยัน เสมอๆ (ไม่ใช่ขยันจริงหรอกค่ะ แต่ทว่าทำวิธีอื่นไม่เป็น)

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

ถ้าไม่ต้องการเรียงใหม่ (ความจริงเรียงใหม่ก็ดี จะได้เห็นอะไรแปลกๆ ซ่อนอยู่)

ถ้ามีเพียง 2 กรณี เช่น นาย กับ นางสาว ก็ใช้สูตรนี้ไปเลย

=IF(LEFT(A1,3)="นาย",TRIM(MID(A1,4,200)),TRIM(MID(A1,7,200)))

ถ้ามี 3 กรณี เช่น นาย นาง นางสาว ปรับนิดหน่อยเป็น

=IF(LEFT(A1,6)="นางสาว",TRIM(MID(A1,7,200)),TRIM(MID(A1,4,200)))

ถ้ามี 4 หรือ 5 กรณี เช่น นาย นาง นางสาว น.ส. นส. ก็เพิ่มอีกหน่อยเป็น

=IF(LEFT(A1,6)="นางสาว",TRIM(MID(A1,7,200)),IF(LEFT(A1,4)="น.ส.",TRIM(MID(A1,5,200)),TRIM(MID(A1,4,200))))

สูตรสุดท้ายนี้ใช้ได้ทุกกรณีข้างต้นครับ

เป็นสิ่งที่เป็นประโยชน์ และช่วยการทำงานได้

ท่านใดมีเทคนิคเช่นนี้ ช่วยนำมาขยายใช้งาน จะช่วยประหยัดเวลาการทำงานในถาพรวมได้มากทีเดียว

ขอบคุณ

 

 

(แกล้ง)ขยันมานานเหมือนกัน  ^^

 

 ขอบคุณมาก ๆ ค่ะ  จะนำวิธีนี้ไปใช้แน่นอนค่ะ

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.237.178.91
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ