Thep Excel

REGEXEXTRACT – ดึงข้อความด้วย Regular Expression

REGEXEXTRACT เป็นฟังก์ชันสำหรับดึงข้อความย่อย (Substring) ที่ตรงกับรูปแบบ Regular Expression (Regex) ที่กำหนด เหมาะสำหรับการทำ Data Cleaning ขั้นสูง

=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])

By ThepExcel AI Agent
23 December 2025

Function Metrics


Popularity
6/10

Difficulty
6/10

Usefulness
7/10

Syntax & Arguments

=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

Examples

ตัวอย่างที่ 1: ดึงตัวเลขจากข้อความ
REGEXEXTRACT("Order #12345 confirmed", "\d+")
\d+ แทนกลุ่มตัวเลข (Digit) ตั้งแต่ 1 ตัวขึ้นไป ฟังก์ชันดึงกลุ่มตัวเลขแรกที่พบ
Excel Formula:

=REGEXEXTRACT("Order #12345 confirmed", "\d+")

Result:

12345

ตัวอย่างที่ 2: ดึงโดเมนอีเมล
REGEXEXTRACT("contact@thepexcel.com", "@(.+)")
(.+) เป็น capture group – ดึงทั้งหมดที่อยู่หลัง @ ออกมา (ที่อยู่ในวงเล็บ)
Excel Formula:

=REGEXEXTRACT("contact@thepexcel.com", "@(.+)")

Result:

thepexcel.com

ตัวอย่างที่ 3: ดึงปีจากวงเล็บ
REGEXEXTRACT("The Matrix (1999)", "\((\d{4})\)")
\( และ \) ระบุวงเล็บจริงในข้อความ, \d{4} คือตัวเลข 4 หลัก ในวงเล็บ capture group
Excel Formula:

=REGEXEXTRACT("The Matrix (1999)", "\((\d{4})\)")

Result:

1999

ตัวอย่างที่ 4: ดึงหลายค่า (array) ด้วย return_mode=1
REGEXEXTRACT("ราคา 100, 200, 300", "\d+", 1)
return_mode=1 ทำให้คืนค่าทั้งหมดที่พบ เป็น array แทนเพียงค่าแรก
Excel Formula:

=REGEXEXTRACT("ราคา 100, 200, 300", "\d+", 1)

Result:

{"100", "200", "300"}

FAQs

REGEXEXTRACT ใน Excel กับ Google Sheets เหมือนกันไหม?

เกือบเหมือน ทั้งคู่ใช้ดึงข้อความด้วย Regex ได้ อย่างไรก็ตาม Excel ใช้ PCRE2 (มีความสามารถสูง สามารถใช้ lookahead/lookbehind) ส่วน Google Sheets ใช้ RE2 (ปลอดภัยกว่า ไม่รองรับ lookahead/lookbehind) ถ้ามีสูตร Google Sheets อาจต้องปรับ Regex เล็กน้อย

ถ้าไม่เจอรูปแบบที่กำหนดจะเป็นอย่างไร?

จะคืนค่า error #N/A แนะนำให้ครอบด้วย IFERROR เพื่อจัดการกรณีไม่พบข้อมูล เช่น =IFERROR(REGEXEXTRACT(…), “ไม่พบ”)

ไม่เก่ง Regex จะเขียนได้อย่างไร?

ใช้ AI ช่วย! บอก ChatGPT/Claude/Gemini ว่า “Write a regex to [สิ่งที่ต้องการ]” หรือทดสอบที่ regexr.com ซึ่งมีคำอธิบายแบบ visual และ interactive

Excel ใช้ Regex แบบไหน?

Excel ใช้ PCRE2 (.NET Regex) ซึ่งเป็นเวอร์ชันเต็ม รองรับ lookahead (?=) และ lookbehind (?<=) ส่วนจะ backreference (\1, \2) ก็ได้ด้วย

Resources & Related

Additional Notes

ฟังก์ชัน 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 เท่า 😎

Leave a Reply

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