🔍 ยกระดับการค้นหาข้อความใน Excel ด้วย RegEx ⚡

🔍 ยกระดับการค้นหาข้อความใน Excel ด้วย RegEx ⚡ 1

ถ้าคุณใช้ Excel มานาน คงคุ้นเคยกับ Wildcard อย่าง * หรือ ? กันดีใช่มั้ยครับ 😜 โดยปกติเราจะใช้ Wildcard ร่วมกับฟังก์ชันยอดฮิต เช่น SEARCH, SUMIFS, หรือ VLOOKUP เพื่อช่วยค้นหาหรือจับคู่ข้อความง่ายๆ

ตัวอย่างการใช้ Wildcard:

  • *phone* → ค้นหาคำที่มีคำว่า “phone” อยู่ที่ตำแหน่งไหนก็ได้ เช่น smartphone, iphone16, phone call
  • ca? → ค้นหาคำที่ขึ้นต้นด้วย “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 ตัว ที่ช่วยงานข้อความได้อย่างลงตัว:

  1. REGEXTEST → เช็คว่าข้อความตรงกับ Pattern หรือไม่ (ได้ TRUE/FALSE)
  2. REGEXEXTRACT → ดึงข้อความที่ตรงกับ Pattern ออกมา
  3. 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 ให้หน่อย
🔍 ยกระดับการค้นหาข้อความใน Excel ด้วย RegEx ⚡ 2

อธิบายแต่ละส่วน:

ส่วนความหมาย
[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

Your email address will not be published. Required fields are marked *