REGEXREPLACE ค้นหาและแทนที่ข้อความจากรูปแบบ Regular Expression ใช้สำหรับ Data Cleaning ที่ซับซ้อน เหมาะสำหรับ Excel 365 รองรับ backreferences
=REGEXREPLACE(text, pattern, replacement, [match_number])
=REGEXREPLACE(text, pattern, replacement, [match_number])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | Text | Yes | ข้อความหรือเซลล์ที่ต้องการค้นหาและแทนที่ | |
| pattern | Text | Yes | รูปแบบ Regex ที่ต้องการค้นหา (ต้องอยู่ในเครื่องหมายคำพูด) เช่น “\d+” สำหรับตัวเลข “(\d{3})-(\d{4})” สำหรับ xxx-xxxx | |
| replacement | Text | Yes | ข้อความที่ต้องการแทนที่ สามารถใช้ $0 (ข้อความที่ตรงกันทั้งหมด), $1, $2, $3 (capture group) หรือ “” (ลบข้อความที่ค้นเจอ) | |
| match_number | Number | Optional | -1 | [Optional] หมายเลขครั้งที่ต้องการแทนที่ (1 = ครั้งแรก, -1 = ทั้งหมด) ค่าเริ่มต้นคือ -1 (แทนที่ทั้งหมด) |
REGEXREPLACE("0-2345-6789", "-", "")=REGEXREPLACE("0-2345-6789", "-", "")
0234567890
REGEXREPLACE("0234567890", "(\d{3})(\d{3})(\d{4})", "$1-$2-$3")=REGEXREPLACE("0234567890", "(\d{3})(\d{3})(\d{4})", "$1-$2-$3")
023-456-7890
REGEXREPLACE("aabbccdd", "(.)\\1", "$1")=REGEXREPLACE("aabbccdd", "(.)\\1", "$1")
abcd
REGEXREPLACE("2025-12-23", "(\d{4})-(\d{2})-(\d{2})", "$3/$2/$1")=REGEXREPLACE("2025-12-23", "(\d{4})-(\d{2})-(\d{2})", "$3/$2/$1")
23/12/2025
Google Sheets มี REGEXREPLACE ด้วย แต่ใช้ RE2 regex engine (Google’s internal) ที่ไม่รองรับ lookahead/lookbehind ส่วน Excel ใช้ .NET Regex ที่รองรับได้ นอกนั้นก็ทำงานเกือบเหมือนกัน ต่างกันเพียง syntax backreference เล็กน้อย
SUBSTITUTE ค้นหาข้อความตรง ๆ เท่านั้น เช่น “cat” ค้นหาแค่ “cat” ไม่ได้ “cats” ส่วน REGEXREPLACE ใช้รูปแบบ ค้นหา “cat.” ได้ทั้ง “cat”, “cats”, “catch” เพราะ . = อักขระใด ๆ ยืดหยุ่นกว่ามาก
ใช้ AI ช่วย! บอก ChatGPT/Claude/Gemini ว่า “Write a regex to [สิ่งที่ต้องการ]” เช่น “Write a regex to extract all email addresses” เขาจะให้ pattern มา หรือทดสอบที่ regexr.com ซึ่งมีคำอธิบายแบบ visual ทำให้เห็นผลทันที
ใช้ .NET Regex (Microsoft .NET Framework regular expressions) ที่รองรับ PCRE เต็มรูปแบบ รวม lookahead (?=), lookbehind (?<=), named groups (?) ยืดหยุ่นกว่า RE2 ของ Google ทำให้สามารถเขียน pattern ที่ซับซ้อนได้
ฟังก์ชัน REGEXREPLACE ช่วยให้คุณค้นหาส่วนหนึ่งของข้อความและแทนที่ด้วยข้อความใหม่ โดยใช้รูปแบบ Regular Expression (Regex) ที่มีความยืดหยุ่นสูง เหมาะสำหรับงาน Data Cleaning ที่ซับซ้อน เช่น จัดรูปแบบเบอร์โทรศัพท์ ลบสัญลักษณ์พิเศษ หรือเปลี่ยนลำดับข้อมูล
ต่างจาก SUBSTITUTE ที่ค้นหาข้อความตรง ๆ REGEXREPLACE ใช้รูปแบบ (regex) ที่ยืดหยุ่นกว่า และสามารถใช้ backreferences ($1, $2) เพื่ออ้างอิงกลุ่มที่ค้นเจอได้ ทำให้สามารถจัดการข้อมูลที่ซับซ้อนได้อย่างมีประสิทธิภาพ
**⚠️ ความเข้ากันได้:** REGEXREPLACE เป็นฟังก์ชันใหม่ใน Excel 365 (Public Preview 2024) ถ้าใช้ Excel เวอร์ชั่นเก่ากว่า ต้องใช้ VBA หรือ Python in Excel แทน
**📚 เรียนรู้ Regex:** ศึกษาวิธีเขียน Regex แบบละเอียดได้ที่ [คู่มือ Regex ฉบับสมบูรณ์สำหรับ Excel](https://www.thepexcel.com/regex-excel-guide/) ซึ่งครอบคลุม Pattern พื้นฐาน, Capture Groups, Backreferences ($1, $2), Lookahead/Lookbehind และเทคนิคขั้นสูง
ส่วนตัวผม REGEXREPLACE เป็นฟังก์ชันที่ประหยัดเวลาเวลาต้องจัดรูปแบบข้อมูลจำนวนมากหรือลบสัญลักษณ์พิเศษ ทำให้ Data Cleaning เร็วกว่า SUBSTITUTE ใช้วิธีธรรมดาถึง 5-10 เท่า 😎