REGEXEXTRACT เป็นฟังก์ชันสำหรับดึงข้อความย่อย (Substring) ที่ตรงกับรูปแบบ Regular Expression (Regex) ที่กำหนด เหมาะสำหรับการทำ Data Cleaning ขั้นสูง
=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])
=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | Text | Yes | ข้อความหรือเซลล์ที่ต้องการดึงข้อมูล | |
| pattern | Text | Yes | รูปแบบ Regex ที่ต้องการค้นหา (ต้องอยู่ในเครื่องหมายคำพูด) หากมีกลุ่มวงเล็บ () จะคืนค่าเฉพาะในวงเล็บ | |
| return_mode | Number | Optional | 0 | ตัวเลือกว่าจะคืนค่าอะไร: 0 = ค่าแรกที่พบ (default), 1 = ทุกค่าที่พบ (array), 2 = capture groups จากค่าแรก (array) |
| case_sensitivity | Number | Optional | 0 | 0 = case-sensitive (default), 1 = case-insensitive |
REGEXEXTRACT("Order #12345 confirmed", "\d+")=REGEXEXTRACT("Order #12345 confirmed", "\d+")
12345
REGEXEXTRACT("contact@thepexcel.com", "@(.+)")=REGEXEXTRACT("contact@thepexcel.com", "@(.+)")
thepexcel.com
REGEXEXTRACT("The Matrix (1999)", "\((\d{4})\)")=REGEXEXTRACT("The Matrix (1999)", "\((\d{4})\)")
1999
REGEXEXTRACT("ราคา 100, 200, 300", "\d+", 1)=REGEXEXTRACT("ราคา 100, 200, 300", "\d+", 1)
{"100", "200", "300"}
เกือบเหมือน ทั้งคู่ใช้ดึงข้อความด้วย Regex ได้ อย่างไรก็ตาม Excel ใช้ PCRE2 (มีความสามารถสูง สามารถใช้ lookahead/lookbehind) ส่วน Google Sheets ใช้ RE2 (ปลอดภัยกว่า ไม่รองรับ lookahead/lookbehind) ถ้ามีสูตร Google Sheets อาจต้องปรับ Regex เล็กน้อย
จะคืนค่า error #N/A แนะนำให้ครอบด้วย IFERROR เพื่อจัดการกรณีไม่พบข้อมูล เช่น =IFERROR(REGEXEXTRACT(…), “ไม่พบ”)
ใช้ AI ช่วย! บอก ChatGPT/Claude/Gemini ว่า “Write a regex to [สิ่งที่ต้องการ]” หรือทดสอบที่ regexr.com ซึ่งมีคำอธิบายแบบ visual และ interactive
Excel ใช้ PCRE2 (.NET Regex) ซึ่งเป็นเวอร์ชันเต็ม รองรับ lookahead (?=) และ lookbehind (?<=) ส่วนจะ backreference (\1, \2) ก็ได้ด้วย
ฟังก์ชัน REGEXEXTRACT ช่วยให้คุณดึงส่วนหนึ่งของข้อความออกมาโดยใช้รูปแบบ Regular Expression (Regex) ซึ่งมีความยืดหยุ่นสูงกว่าการใช้ LEFT, RIGHT, MID เหมาะสำหรับดึงข้อมูลที่มีรูปแบบซับซ้อน เช่น อีเมล เบอร์โทรศัพท์ หรือรหัสสินค้า
**📚 เรียนรู้ Regex:** ศึกษาวิธีเขียน Regex แบบละเอียดได้ที่ [คู่มือ Regex ฉบับสมบูรณ์สำหรับ Excel](https://www.thepexcel.com/regex-excel-guide/) ซึ่งครอบคลุม Pattern พื้นฐาน, Capture Groups, Lookahead/Lookbehind และเทคนิคขั้นสูง
ส่วนตัวผม REGEXEXTRACT เป็นฟังก์ชันที่ประหยัดเวลาสุด ๆ เวลามีข้อมูลที่ยุ่งโจม แล้วต้องดึงส่วนที่เฉพาะเจาะจง ทำให้ Data Cleaning เร็วกว่าเดิม 10 เท่า 😎