Microsoft 365 เพิ่มฟังก์ชันตระกูล REGEX (Regular Expression) ที่ทำงานกับข้อความด้วย “รูปแบบ” แทนการระบุตำแหน่งตายตัว ทำให้ตรวจรูปแบบ ดึงข้อมูล และแทนที่ข้อความที่ซับซ้อนได้ในสูตรเดียว มีสามตัว: REGEXTEST เช็คว่าตรงรูปแบบไหม, REGEXEXTRACT ดึงส่วนที่ตรง, REGEXREPLACE แทนที่ส่วนที่ตรง
รูปแบบของสูตร
=REGEXTEST(ข้อความ, รูปแบบ, [ไม่สนตัวพิมพ์]) → TRUE / FALSE
=REGEXEXTRACT(ข้อความ, รูปแบบ, [โหมด], [ไม่สนตัวพิมพ์]) → โหมด 0 = ตรงตัวแรก, 1 = ทุกตัว, 2 = กลุ่มในวงเล็บ
=REGEXREPLACE(ข้อความ, รูปแบบ, ข้อความแทนที่, [ครั้งที่], [ไม่สนตัวพิมพ์])
สัญลักษณ์ที่ใช้บ่อย
\d |
ตัวเลข 1 ตัว | \s |
ช่องว่าง |
\w |
ตัวอักษร/ตัวเลข/ขีดล่าง | . |
ตัวอักษรอะไรก็ได้ 1 ตัว |
+ |
ตัวหน้ามี 1 ตัวขึ้นไป | * |
ตัวหน้ามี 0 ตัวขึ้นไป |
{n} |
ตัวหน้ามี n ตัวพอดี | ? |
ตัวหน้ามีหรือไม่มีก็ได้ |
[ ] |
ตัวใดตัวหนึ่งในวงเล็บ | ( ) |
จับกลุ่มไว้ดึงทีหลัง |
^ |
ต้นข้อความ | $ |
ท้ายข้อความ |
| |
หรือ | \. |
จุดจริงๆ (ใส่ \ นำหน้าอักขระพิเศษ) |
ตัวอย่างที่ 1: REGEXTEST ตรวจเบอร์มือถือไทย
=REGEXTEST(A2,"^0[689]\d{8}$")| A | B | |
|---|---|---|
| 1 | เบอร์ที่กรอกมา | รูปแบบถูกไหม |
| 2 | 0812345678 | TRUE |
| 3 | 02-123-4567 | FALSE |
รูปแบบ ^0[689]\d{8}$ = ขึ้นต้นด้วย 0 ตามด้วย 6/8/9 แล้วตามด้วยตัวเลขอีก 8 ตัว จนจบพอดี ใช้ตรวจข้อมูลก่อนนำเข้าระบบ
ตัวอย่างที่ 2: REGEXEXTRACT ดึงอีเมลทั้งหมดจากข้อความ
=REGEXEXTRACT(A2,"[\w.]+@[\w.]+", 1)| A | B | |
|---|---|---|
| 1 | ข้อความ | อีเมลที่พบ |
| 2 | ติดต่อ a@x.com หรือ b@y.co.th | a@x.com |
| 3 | b@y.co.th |
โหมด 1 บอกให้คืนทุกส่วนที่ตรงรูปแบบ ล้นออกมาหลายเซลล์ ถ้าใช้โหมด 0 (ค่าเริ่มต้น) จะได้แค่อีเมลแรก
ตัวอย่างที่ 3: REGEXREPLACE ปิดบังเลขบัตรประชาชน
=REGEXREPLACE(A2,"\d(?=\d{4})","x")| A | B | |
|---|---|---|
| 1 | เลขบัตร | ปิดบังแล้ว |
| 2 | 1234567890123 | xxxxxxxxx0123 |
รูปแบบ \d(?=\d{4}) = ตัวเลขที่มีอีก 4 หลักตามหลัง ให้แทนด้วย x เหลือไว้ 4 ตัวสุดท้าย ใช้ทำรายงานที่ไม่ต้องโชว์ข้อมูลเต็ม
ตัวอย่างที่ 4: ดึงกลุ่มในวงเล็บ (โหมด 2)
=REGEXEXTRACT(A2,"(\d{4})-(\d{2})-(\d{2})", 2)| A | B | C | D | |
|---|---|---|---|---|
| 1 | ข้อความ | ปี | เดือน | วัน |
| 2 | วันที่ 2026-08-15 เวลา | 2026 | 08 | 15 |
โหมด 2 คืนเฉพาะส่วนที่อยู่ในวงเล็บ ( ) แยกเป็นคนละเซลล์ ใช้แกะข้อมูลที่มีรูปแบบตายตัว
ข้อควรรู้
- เป็นฟังก์ชันของ Microsoft 365 (ปี 2024 เป็นต้นมา) — เวอร์ชันเก่าไม่มี ใช้ SEARCH / SUBSTITUTE แทน
- ไม่สนตัวพิมพ์ต้องสั่งเอง — ใส่อาร์กิวเมนต์สุดท้ายเป็น
TRUEถ้าอยากให้ a กับ A เท่ากัน - อักขระพิเศษต้องใส่ \ นำหน้า — เช่น จุด
\.วงเล็บ\(เครื่องหมายบวก\+ - เริ่มจากรูปแบบง่ายๆ — ทดสอบกับข้อมูลจริงทีละขั้น แล้วค่อยเพิ่มความซับซ้อน ดูการใช้งานคู่กับการดึงตัวเลขที่ ดึงตัวเลขจากข้อความ