ถ้าคุณใช้ Excel มานาน คงคุ้นเคยกับ Wildcard อย่าง *
หรือ ?
กันดีใช่มั้ยครับ 😜 โดยปกติเราจะใช้ Wildcard ร่วมกับฟังก์ชันยอดฮิต เช่น SEARCH
, SUMIFS
, หรือ VLOOKUP
เพื่อช่วยค้นหาหรือจับคู่ข้อความง่ายๆ
ตัวอย่างการใช้ Wildcard:
*phone*
→ ค้นหาคำที่มีคำว่า “phone” อยู่ที่ตำแหน่งไหนก็ได้ เช่น smartphone, iphone16, phone callca?
→ ค้นหาคำที่ขึ้นต้นด้วย “ca” และตามด้วยตัวอักษรอีกหนึ่งตัว เช่น cat, car
แต่ Wildcard มีข้อจำกัดมาก ถ้าคุณต้องการจัดการข้อความที่ซับซ้อนกว่านั้น เช่น ดึงอีเมลจากข้อความยาวๆ เช็คว่าข้อความมีตัวเลขหรือไม่ หรือแทนที่คำเฉพาะที่เข้าเงื่อนไข Wildcard จะเริ่มเอาไม่อยู่ทันที…
✅ มาทำความรู้จักกับ RegEx กัน
RegEx (Regular Expression) คือ “ภาษาสำหรับกำหนดรูปแบบข้อความ” ที่ยืดหยุ่นและมีพลังสูงกว่า Wildcard หลายเท่าตัว สามารถทำงานที่ซับซ้อนได้ง่ายกว่า เช่น:
- ตรวจสอบว่าข้อความมีเบอร์โทรศัพท์หรือรหัสพิเศษซ่อนอยู่หรือไม่
- ดึงเฉพาะอีเมลออกมาจากข้อความที่ซับซ้อน
- แทนที่ข้อความหรือสัญลักษณ์ตามเงื่อนไขเฉพาะเจาะจง
🛠 พื้นฐานการเขียน RegEx แบบง่ายๆ
เรามาเริ่มเรียนรู้การใช้งาน RegEx พื้นฐานกันก่อนเลยครับ:
อักขระที่อยากได้
- cat → หาคำนั้นๆ เลย เช่น cat
.
→ แทนตัวอักษรอะไรก็ได้ 1 ตัว เช่นca.
จะจับได้ cat, car, cab\d
→ ตัวเลข (digit)\w
→ ตัวอักษรหรือตัวเลข (word character)\s
→ ช่องว่าง (space)
character class
- [abc] → a, b, หรือ c
- [^abc] → ไม่ใช่ a, b, c
- [a-z] → a ถึง z ตัวไหนก็ได้
- [A-Z] → A ถึง Z ตัวไหนก็ได้
- [0-9] → เลข 0 ถึง 9
ตัวระบุจำนวน
+
→ มีตัวข้างหน้าซ้ำตั้งแต่ 1 ตัวขึ้นไป*
→ มีตัวข้างหน้าซ้ำกี่ตัวก็ได้ (0 ตัวขึ้นไป){n}
→ ตัวข้างหน้าซ้ำจำนวน n ตัวเป๊ะๆ
ตัวอย่างแบบง่ายๆ :
\d{4}
→ ตัวเลข 4 หลัก เช่น 2024, 1234[A-Za-z]+
→ คำที่มีตัวอักษรภาษาอังกฤษเท่านั้น
ถ้าอยากเรียนรู้แบบละเอียดขึ้น อ่านที่บทความเก่าที่ผมเขียนถึง RegEx ได้ที่นี่
🚀 3 ฟังก์ชัน RegEx ทรงพลังใน Excel 365
Excel 365 มีฟังก์ชัน RegEx หลักๆ อยู่ 3 ตัว ที่ช่วยงานข้อความได้อย่างลงตัว:
- REGEXTEST → เช็คว่าข้อความตรงกับ Pattern หรือไม่ (ได้ TRUE/FALSE)
- REGEXEXTRACT → ดึงข้อความที่ตรงกับ Pattern ออกมา
- REGEXREPLACE → แทนที่ข้อความที่ตรงกับ Pattern ด้วยข้อความใหม่
🌟 มาลองใช้งานจริงกัน!
สมมติในเซลล์ A1
มีข้อความ:
Order: P1234, Contact: test@email.com, Note: urgent!!
- เช็คว่ามีคำว่า P ตามด้วยตัวเลข 4 หลักหรือไม่:
=REGEXTEST(A1, "P\d{4}")
ผลลัพธ์: TRUE
- ดึงเฉพาะอีเมลออกมา:
=REGEXEXTRACT(A1, "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")
ผลลัพธ์: test@email.com
- แทนที่คำว่า urgent! หรือ urgent!! ด้วย ⚠️ด่วน:
=REGEXREPLACE(A1, "urgent!?+", "⚠️ด่วน")
ผลลัพธ์: Order: P1234, Contact: test@email.com, Note: ⚠️ด่วน
🎯 วิธีการนำ RegEx ไปใช้งานจริง
ตัวอย่างเพิ่มเติม:
- ดึงเบอร์โทรศัพท์จากข้อความ:
=REGEXEXTRACT(A1, "\d{3}-\d{3}-\d{4}")
(เช่น 089-123-4567)
- ตรวจสอบว่าข้อความมีตัวเลขหรือไม่:
=REGEXTEST(A1, "\d")
- ลบตัวเลขทั้งหมดออกจากข้อความ:
=REGEXREPLACE(A1, "\d", "")
🤖 ให้ AI ช่วยคุณสร้าง Pattern ได้
ถ้ารู้สึก RegEx มันดูซับซ้อน อย่าเพิ่งตกใจไป! เพราะยุคนี้คุณสามารถใช้ AI อย่าง ChatGPT หรือ Copilot ช่วยสร้าง Pattern ได้ง่ายๆ แค่บอก AI ว่าต้องการ Pattern แบบไหน มันก็จัดให้แบบรวดเร็วทันใจครับ 😉 เช่น
ช่วยเขียน regex ที่ดัก email address ให้หน่อย

อธิบายแต่ละส่วน:
ส่วน | ความหมาย |
---|---|
[a-zA-Z0-9._%+-]+ | username ด้านหน้าของ @ เช่น john.doe |
@ | สัญลักษณ์ @ |
[a-zA-Z0-9.-]+ | domain name เช่น gmail หรือ thepexcel |
\. | จุดก่อน top-level domain เช่น .com |
[a-zA-Z]{2,} | top-level domain เช่น com , co.th , edu |
📌 สรุป
RegEx เป็นสุดยอดอาวุธลับที่ทำให้คุณทำงานกับข้อความได้ง่ายขึ้นมหาศาล Excel 365 พร้อมให้คุณใช้งานฟังก์ชัน RegEx แล้ว อย่ารอช้า ไปลองกันเลย แล้วจะรู้ว่าพลังของมันสุดยอดขนาดไหน! 😎
ปล. ฟังก์ชันนี้สามารถใช้คู่กับฟังก์ชันยอดฮิตอย่าง XLOOKUP
เพื่อเพิ่มประสิทธิภาพการค้นหาได้ด้วยนะครับ 😉
Leave a Reply