Lab: Clean Names & IDs
สถานการณ์
Section titled “สถานการณ์”คุณได้รับข้อมูลนักศึกษาจากระบบเก่าที่ export มาเป็น CSV ข้อมูลยุ่งเหยิงมาก — ชื่อมี space เกิน, ตัวเล็กตัวใหญ่ปนกัน, และรหัสนักศึกษาหาย leading zeros ทั้งหมด
เตรียมข้อมูล
Section titled “เตรียมข้อมูล”-
สร้าง Google Sheet ใหม่
-
ใส่ข้อมูลใน A1:C1 เป็น Header:
A B C Raw Name Raw ID Email -
ใส่ข้อมูลใน A2:C6 (พิมพ์ตามนี้เป๊ะ ๆ รวม space เกิน):
A (Raw Name) B (Raw ID) C (Email) SOMCHAI SMITH1234Somchai@School.AC.THjane DOE567JANE.DOE@school.ac.thbOB jOnEs89bob@SCHOOL.AC.THMARY jane23Mary.Jane@School.ac.thtom5TOM@school.AC.TH -
สังเกต: column B (Raw ID) ควรจะเป็นรหัส 5 หลัก เช่น
01234,00567
ภารกิจ 1: ล้างชื่อ
Section titled “ภารกิจ 1: ล้างชื่อ”ใน column D (header: Clean Name) สร้างสูตรที่:
- ลบ space เกินหน้า-หลังและตรงกลาง
- ทำให้ตัวอักษรแรกของแต่ละคำเป็นตัวใหญ่
เป้าหมาย:
| Raw Name | Clean Name |
|---|---|
SOMCHAI SMITH | Somchai Smith |
jane DOE | Jane Doe |
bOB jOnEs | Bob Jones |
Show Solution
=PROPER(TRIM(CLEAN(A2)))ทำงาน 3 ขั้น:
CLEAN(A2)— ลบอักขระมองไม่เห็นTRIM(...)— ลบ space เกินPROPER(...)— ทำตัวแรกของแต่ละคำเป็นตัวใหญ่
ผลลัพธ์:
| Raw | Clean |
|---|---|
SOMCHAI SMITH | Somchai Smith |
jane DOE | Jane Doe |
bOB jOnEs | Bob Jones |
MARY jane | Mary Jane |
tom | Tom |
ภารกิจ 2: สร้างรหัสนักศึกษา 5 หลัก
Section titled “ภารกิจ 2: สร้างรหัสนักศึกษา 5 หลัก”ใน column E (header: Student ID) สร้างสูตรที่แปลง Raw ID ให้เป็นรหัส 5 หลักมี leading zeros
เป้าหมาย:
| Raw ID | Student ID |
|---|---|
1234 | 01234 |
567 | 00567 |
89 | 00089 |
23 | 00023 |
5 | 00005 |
Show Solution
=TEXT(B2, "00000")TEXT() แปลงตัวเลขให้แสดงตาม format ที่กำหนด
"00000" = แสดงอย่างน้อย 5 หลัก เติม 0 ข้างหน้า
ผลลัพธ์:
| Raw ID | Student ID |
|---|---|
1234 | 01234 |
567 | 00567 |
89 | 00089 |
23 | 00023 |
5 | 00005 |
ภารกิจ 3: ทำ Email ให้เป็นตัวเล็กทั้งหมด
Section titled “ภารกิจ 3: ทำ Email ให้เป็นตัวเล็กทั้งหมด”ใน column F (header: Clean Email) ทำ email ให้เป็นตัวเล็กทั้งหมด
เป้าหมาย:
| Raw Email | Clean Email |
|---|---|
Somchai@School.AC.TH | somchai@school.ac.th |
Show Solution
=LOWER(TRIM(C2))Email address ต้องเป็นตัวเล็กทั้งหมด (ตามมาตรฐาน RFC ส่วน domain เป็น case-insensitive แต่ทำเป็นตัวเล็กหมดเป็นแนวปฏิบัติที่ดี)
ผลลัพธ์:
| Raw Email | Clean Email |
|---|---|
Somchai@School.AC.TH | somchai@school.ac.th |
JANE.DOE@school.ac.th | jane.doe@school.ac.th |
bob@SCHOOL.AC.TH | bob@school.ac.th |
Mary.Jane@School.ac.th | mary.jane@school.ac.th |
TOM@school.AC.TH | tom@school.ac.th |
ภารกิจ 4 (ท้าทาย): สร้าง Email ใหม่จากชื่อ
Section titled “ภารกิจ 4 (ท้าทาย): สร้าง Email ใหม่จากชื่อ”ใน column G สร้าง email ใหม่ในรูปแบบ firstname.lastname@university.ac.th
ใช้ชื่อที่ล้างแล้วจาก column D
Show Solution
=LOWER(LEFT(D2, FIND(" ", D2)-1)) & "." & LOWER(MID(D2, FIND(" ", D2)+1, LEN(D2))) & "@university.ac.th"ทำงาน:
LEFT(D2, FIND(" ",D2)-1)— ตัดชื่อ (ก่อน space)MID(D2, FIND(" ",D2)+1, LEN(D2))— ตัดนามสกุล (หลัง space)LOWER()— ทำให้เป็นตัวเล็ก&— ต่อ string
ผลลัพธ์:
somchai.smith@university.ac.thjane.doe@university.ac.thbob.jones@university.ac.th