Thep Excel

REGEXREPLACE – แทนที่ข้อความด้วย Regular Expression

REGEXREPLACE ค้นหาและแทนที่ข้อความจากรูปแบบ Regular Expression ใช้สำหรับ Data Cleaning ที่ซับซ้อน เหมาะสำหรับ Excel 365 รองรับ backreferences

=REGEXREPLACE(text, pattern, replacement, [match_number])

By ThepExcel AI Agent
23 December 2025

Function Metrics


Popularity
6/10

Difficulty
6/10

Usefulness
7/10

Syntax & Arguments

=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 (แทนที่ทั้งหมด)

Examples

ตัวอย่างที่ 1: ลบสัญลักษณ์พิเศษจากเบอร์โทร
REGEXREPLACE("0-2345-6789", "-", "")
ค้นหาเครื่องหมาย – และแทนที่ด้วยข้อความว่าง ("") เพื่อลบออกทั้งหมด ใช้งานง่าย ไม่ต้องใช้ capture group
Excel Formula:

=REGEXREPLACE("0-2345-6789", "-", "")

Result:

0234567890

ตัวอย่างที่ 2: จัดรูปแบบเบอร์โทรศัพท์ (Backreference)
REGEXREPLACE("0234567890", "(\d{3})(\d{3})(\d{4})", "$1-$2-$3")
ใช้ capture groups () แบ่งตัวเลขออกเป็น 3 ส่วน: 3 หลัก-3 หลัก-4 หลัก แล้วใช้ $1, $2, $3 เพื่อนำกลับมาพร้อมเครื่องหมาย บ่อยมากในการจัดรูปแบบ
Excel Formula:

=REGEXREPLACE("0234567890", "(\d{3})(\d{3})(\d{4})", "$1-$2-$3")

Result:

023-456-7890

ตัวอย่างที่ 3: ลบตัวอักษรซ้ำออก (Advanced)
REGEXREPLACE("aabbccdd", "(.)\\1", "$1")
ค้นหาตัวอักษร (.) ตามด้วยตัวเดิม \\1 (backreference ภายใน pattern) แล้วแทนที่ด้วยตัวเดิวตัวเดียว $1 ใช้ได้ดีสำหรับลบซ้ำ
Excel Formula:

=REGEXREPLACE("aabbccdd", "(.)\\1", "$1")

Result:

abcd

ตัวอย่างที่ 4: เปลี่ยนรูปแบบวันที่ ISO เป็น ไทย
REGEXREPLACE("2025-12-23", "(\d{4})-(\d{2})-(\d{2})", "$3/$2/$1")
แบ่ง YYYY-MM-DD เป็น 3 groups แล้วจัดเรียงใหม่เป็น DD/MM/YYYY ทำงานได้ทั้งเซลล์เดียวและกับ ARRAYFORMULA
Excel Formula:

=REGEXREPLACE("2025-12-23", "(\d{4})-(\d{2})-(\d{2})", "$3/$2/$1")

Result:

23/12/2025

FAQs

REGEXREPLACE ใน Google Sheets ต่างกันไหม?

Google Sheets มี REGEXREPLACE ด้วย แต่ใช้ RE2 regex engine (Google’s internal) ที่ไม่รองรับ lookahead/lookbehind ส่วน Excel ใช้ .NET Regex ที่รองรับได้ นอกนั้นก็ทำงานเกือบเหมือนกัน ต่างกันเพียง syntax backreference เล็กน้อย

ต่างจาก SUBSTITUTE อย่างไร?

SUBSTITUTE ค้นหาข้อความตรง ๆ เท่านั้น เช่น “cat” ค้นหาแค่ “cat” ไม่ได้ “cats” ส่วน REGEXREPLACE ใช้รูปแบบ ค้นหา “cat.” ได้ทั้ง “cat”, “cats”, “catch” เพราะ . = อักขระใด ๆ ยืดหยุ่นกว่ามาก

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

ใช้ AI ช่วย! บอก ChatGPT/Claude/Gemini ว่า “Write a regex to [สิ่งที่ต้องการ]” เช่น “Write a regex to extract all email addresses” เขาจะให้ pattern มา หรือทดสอบที่ regexr.com ซึ่งมีคำอธิบายแบบ visual ทำให้เห็นผลทันที

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

ใช้ .NET Regex (Microsoft .NET Framework regular expressions) ที่รองรับ PCRE เต็มรูปแบบ รวม lookahead (?=), lookbehind (?<=), named groups (?) ยืดหยุ่นกว่า RE2 ของ Google ทำให้สามารถเขียน pattern ที่ซับซ้อนได้

Resources & Related

Additional Notes

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

Leave a Reply

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