---
title: REPLACE – แทนที่ข้อความตามตำแหน่ง
url: https://www.thepexcel.com/functions/excel/text/replace/
type: function-explainer
program: Excel
syntax: "=REPLACE(old_text, start_num, num_chars, new_text)"
date: 2025-12-14
updated: 2025-12-17
scores:
  popularity: 6
  difficulty: 3
  usefulness: 6
---

# REPLACE – แทนที่ข้อความตามตำแหน่ง

> แทนที่ข้อความตามตำแหน่งและจำนวนตัวอักษร

## คำอธิบาย

REPLACE แทนที่ข้อความจากตำแหน่งที่กำหนด โดยระบุตำแหน่งเริ่มต้น จำนวนตัวอักษรที่ต้องการลบ และข้อความใหม่ที่จะใส่แทน แตกต่างจาก SUBSTITUTE ที่ค้นหาคำที่ตรงตามความพึงพอใจ REPLACE ใช้ตำแหน่งแน่นอน

## Syntax

```excel
=REPLACE(old_text, start_num, num_chars, new_text)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| old_text | Yes | Text |  | ข้อความต้นฉบับที่ต้องการแทนที่ (หรือเซลล์ที่มีข้อความ) |
| start_num | Yes | Number |  | ตำแหน่งตัวอักษรที่เริ่มแทนที่ (1 = ตัวแรก, 2 = ตัวที่สอง เป็นต้น) |
| num_chars | Yes | Number |  | จำนวนตัวอักษรที่ต้องการลบออก (ถ้า 0 จะเป็นการแทรกข้อความโดยไม่ลบ) |
| new_text | Yes | Text |  | ข้อความใหม่ที่จะใส่แทนตำแหน่งที่ลบออก |

## เคสการใช้งาน

### ปกป้องข้อมูลส่วนตัว (Masking)

ซ่อนเบอร์บัตรประชาชน เบอร์บัญชีธนาคาร หรือเบอร์โทรศัพท์ โดยแทนที่ส่วนกลางด้วย * หรือ X เพื่อแสดงในรายงานเท่านั้น

_เหมาะกับ:_ data-privacy

### อัปเดตข้อมูลที่มีรูปแบบคงที่

เปลี่ยนปี รหัสสาขา หรือคำนำหน้าในข้อมูลที่มีรูปแบบ เช่น "BKK-2023-0001" เป็น "BKK-2024-0001"

_เหมาะกับ:_ data-update

### ทำความสะอาดข้อมูล (Data Cleaning)

ลบเครื่องหมายหรือช่องว่างที่ไม่ต้องการออกจากข้อความ เช่น ลบ "-" ออกจากหมายเลขโทรศัพท์

_เหมาะกับ:_ data-cleaning

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: เปลี่ยนปีในข้อความ

```excel
=REPLACE("2023-Data", 1, 4, "2024")
```

**ผลลัพธ์:** `2024-Data`

แทนที่ตั้งแต่ตัวที่ 1 จำนวน 4 ตัว ("2023") ด้วย "2024" ผลลัพธ์คือ "2024-Data" เหมาะสำหรับการอัปเดตปีในข้อมูลสำคัญ

### 2. ตัวอย่างที่ 2: ซ่อนเบอร์โทรศัพท์เพื่อความเป็นส่วนตัว

```excel
=REPLACE("081-234-5678", 5, 3, "***")
```

**ผลลัพธ์:** `081-***-5678`

เริ่มตั้งแต่ตำแหน่ง 5 แทนที่ 3 ตัว ("234") ด้วย "***" เพื่อซ่อนตัวเลขกลาง มีประโยชน์ในการปกป้องข้อมูลเบี้ยวน้อย

### 3. ตัวอย่างที่ 3: แทนที่คำในตำแหน่งท้าย

```excel
=REPLACE("Hello World", 7, 5, "Excel")
```

**ผลลัพธ์:** `Hello Excel`

เริ่มตั้งแต่ตำแหน่ง 7 (ที่ "W") แทนที่ 5 ตัว ("World") ด้วย "Excel" ได้ผลลัพธ์เป็น "Hello Excel"

### 4. ตัวอย่างที่ 4: แทรกข้อความโดยไม่ลบ

```excel
=REPLACE("123456", 3, 0, "-")
```

**ผลลัพธ์:** `12-3456`

เมื่อ num_chars = 0 ฟังก์ชันจะแทรกข้อความใหม่โดยไม่ลบตัวอักษร สูตรนี้แทรกขีด (-) ที่ตำแหน่งที่ 3

### 5. ตัวอย่างที่ 5: ลบ characters โดยใส่ข้อความว่าง

```excel
=REPLACE("Hello, World!", 6, 2, "")
```

**ผลลัพธ์:** `HelloWorld!`

แทนที่ตำแหน่ง 6 จำนวน 2 ตัว (", ") ด้วยข้อความว่าง ผลลัพธ์คือ "HelloWorld!" โดยลบเครื่องหมายจุลภาค

## หมายเหตุเพิ่มเติม

💡 **Tip**: ถ้าต้องการค้นหาข้อความแล้วแทนที่ (ไม่ระบุตำแหน่ง) ให้ใช้ **SUBSTITUTE** แทน

⚠️ **สำคัญ**: REPLACE นับตำแหน่งตั้งแต่ 1 ไม่ใช่ 0 (อย่างใน Programming) ตำแหน่งแรกคือ 1 ตำแหน่งที่สองคือ 2 เป็นต้น

💻 **สำหรับ Power Query**: ใช้ฟังก์ชัน Text.Replace() แทน REPLACE

## คำถามที่พบบ่อย

**Q: ความแตกต่างระหว่าง REPLACE กับ SUBSTITUTE คืออะไร?**

REPLACE ใช้ตำแหน่งและจำนวนตัวอักษร ส่วน SUBSTITUTE ค้นหาคำที่ตรงตามข้อความและแทนที่ (case-sensitive) REPLACE ดีกว่าเมื่อข้อมูลมีรูปแบบคงที่ เช่น "BKK-2023" เสมอที่ตำแหน่งเดียวกัน

**Q: ถ้า start_num มากกว่าความยาวข้อความจะเกิดอะไร?**

ฟังก์ชันจะคืนข้อความต้นฉบับออกมาตามเดิม ไม่มีข้อผิดพลาด เช่น =REPLACE("Hi", 10, 1, "X") จะได้ "Hi" เพราะตำแหน่ง 10 อยู่นอกขอบเขต

**Q: ทำไมต้องใช้ REPLACE แทนที่จะแก้ไขตรงๆ?**

เพราะ REPLACE ทำให้สามารถอัปเดตข้อมูลได้อัตโนมัติในสูตร แล้วสามารถคัดลอกลงมาอีกแถว ถ้าแก้ไขตรงๆ คุณต้องแก้ไขทีละเซลล์ซึ่งช้าและมีโอกาสผิดพลาดสูง

**Q: สามารถใช้ REPLACE ซ้อนกันได้ไหม?**

ได้ครับ สามารถซ้อน REPLACE ไว้ในอีกอันหนึ่งได้ เช่น =REPLACE(REPLACE("2023-BKK-001", 1, 4, "2024"), 6, 3, "CGM") จะแทนที่ปีและสาขาพร้อมกัน

**Q: ผลลัพธ์จาก REPLACE เป็นตัวเลขหรือข้อความ?**

เป็นข้อความ (Text) เสมอ แม้ว่าข้อมูลต้นฉบับเป็นตัวเลขก็ตาม หากต้องการนำไปคำนวณ ต้องแปลงเป็นตัวเลขก่อนด้วย VALUE()

**Q: REPLACE ใช้ได้กับภาษาไทยไหม?**

ได้ครับ REPLACE นับตำแหน่งตัวอักษรตามปกติ ดังนั้นใช้ได้ทั้งภาษาไทยและภาษาอื่นๆ เช่น =REPLACE("สวัสดี", 1, 2, "ยินดี") ได้ "ยินดีสดี"

## ฟังก์ชันที่เกี่ยวข้อง

- [SUBSTITUTE – แทนที่คำหรือข้อความด้วยคำใหม่](https://www.thepexcel.com/functions/excel/text/substitute/)
- [FIND – ค้นหาตำแหน่งของคำ (แยกตัวพิมพ์เล็ก/ใหญ่)](https://www.thepexcel.com/functions/excel/text/find/)
- [LEFT – ตัดข้อความจากซ้าย](https://www.thepexcel.com/functions/excel/text/left/)
- [MID – ตัดข้อความจากตำแหน่งที่ระบุ](https://www.thepexcel.com/functions/excel/text/mid/)
- [RIGHT – ตัดข้อความจากด้านขวา](https://www.thepexcel.com/functions/excel/text/right/)
- [TEXT – แปลงค่าตัวเลข/วันที่เป็นข้อความตามรูปแบบที่กำหนด](https://www.thepexcel.com/functions/excel/text/text/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support: ฟังก์ชัน REPLACE](https://support.microsoft.com/th-th/office/replace-replaceb-functions-8d799074-2425-4a8a-84bc-82472868878a) _(official)_
- [ExcelJet: How to use REPLACE](https://exceljet.net/functions/replace-function) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/excel/text/replace/](https://www.thepexcel.com/functions/excel/text/replace/)_
