Thep Excel

Text.Replaceแทนที่ข้อความใน Power Query

Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด

fx
=Text.Replace(text, old, new) as nullable text

ความนิยม8/10
ความยาก3/10
ประโยชน์8/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
text text ข้อความต้นฉบับที่ต้องการค้นหาและแทนที่
old text ข้อความย่อยที่ต้องการค้นหาและแทนที่
new text ข้อความใหม่ที่จะแทนที่

Additional Notes

Text.Replace ทำหน้าที่ค้นหาข้อความย่อย (substring) ที่ระบุจากข้อความหลัก แล้วแทนที่ด้วยข้อความใหม่ทีละครั้งที่เจอในข้อความทั้งหมด

ส่วนตัวมักใช้ Text.Replace เพื่อเช็ดทำความสะอาด (clean up) ข้อมูลที่ไม่สอดคล้องกัน เช่น ลบ suffix, prefix หรือแทนที่เครื่องหมายพิเศษ 😎 สิ่งที่ต้องระวัง คือ Text.Replace เป็น Case Sensitive ถ้าต้องการแทนที่ไม่สนใจ Case ต้องใช้ Text.Upper หรือ Text.Lower ก่อน หรือใช้ฟังก์ชันที่มี Comparer.OrdinalIgnoreCase

How it works

แก้ไขรหัสสินค้า

เปลี่ยนรหัสสินค้าจาก "PROD-" เป็น "ITEM-"

ทำความสะอาดข้อมูล

แทนที่คำผิด หรือสัญลักษณ์พิเศษ เช่น "#N/A" ด้วยค่าว่าง

สร้าง URL ที่ถูกต้อง

แทนที่ช่องว่างในชื่อไฟล์ด้วยเครื่องหมายขีดกลาง (-) สำหรับ URL

Examples

แทนที่ส่วนของคำText.Replace("apple", "pp", "rr")

ค้นหา "pp" ใน "apple" แล้วแทนที่ด้วย "rr" ได้ผลลัพธ์เป็น "arrle"

fx
= Text.Replace("apple", "pp", "rr")

ผลลัพธ์arrle
แทนที่หลายครั้งในข้อความเดียวText.Replace("banana", "a", "o")

แทนที่ทุกตัวอักษร 'a' ด้วย 'o' ได้ 3 ครั้ง = 2 × 3 × 4 = bonono

fx
= Text.Replace("banana", "a", "o")

ผลลัพธ์bonono
ทำความสะอาดข้อมูลด้วย let…inlet ProductCode = "PROD-2024-001", Clean = Text.Replace(ProductCode, "-", "") in Clean

ลบเครื่องหมาย hyphen ออกจากรหัสสินค้า ทำให้ข้อมูลสะอาดขึ้น

fx
let
ProductCode = "PROD-2024-001",
Clean = Text.Replace(ProductCode, "-", "")
in
Clean

ผลลัพธ์PROD2024001
แทนที่ URL encodinglet Encoded = "Hello%20World%20from%20Power%20Query", Decoded = Text.Replace(Encoded, "%20", " ") in Decoded

แทนที่ %20 (URL space encoding) ด้วยช่องว่างจริง เพื่อให้ข้อมูลอ่านง่ายขึ้น

fx
let
Encoded = "Hello%20World%20from%20Power%20Query",
Decoded = Text.Replace(Encoded, "%20", " ")
in
Decoded

ผลลัพธ์Hello World from Power Query

FAQs

Text.Replace เป็น Case Sensitive หรือไม่?+

ใช่ครับ เป็น Case Sensitive สมบูรณ์ ตัวอย่างเช่น Text.Replace("Apple", "apple", "Orange") จะไม่แทนที่อะไรเลย ถ้าต้องการแทนที่ไม่สนใจ Case สามารถใช้ Text.Upper(text) หรือ Text.Lower(text) ทั้งคำค้นหาและข้อความเดิมก่อน

ถ้าต้องการแทนที่แค่ครั้งแรกที่พบทำอย่างไร?+

Text.Replace จะแทนที่ทุกครั้งที่พบ ถ้าต้องแทนที่แค่ครั้งแรก ต้องใช้วิธีอื่น เช่น สร้าง custom formula ด้วย Text.RemoveRange ร่วมกับ Text.Insert และ Text.PositionOf เพื่อหาตำแหน่งแรกที่พบ

ถ้า text เป็น null จะเกิดอะไรขึ้น?+

จะได้ null กลับมา ถ้าต้องการหลีกเลี่ยงสถานการณ์นี้ ตรวจสอบ null ก่อน เช่น if text null then Text.Replace(text, old, new) else ""

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Replace จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Text.ReplaceText functions
Text functions (12)
Text.AfterDelimiter

ดึงข้อความหลังจากตัวคั่นที่กำหนด สามารถเลือกว่าจะใช้ตัวคั่นที่ 1, 2, 3 เป็นต้น

Text.Clean

Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้

Text.Combine

Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น (separator) เช่น ลูกน้ำ เครื่องหมายขีด หรือ space ได้ เหมาะสำหรับสร้างชื่อเต็ม ที่อยู่ หรือรหัสประจำตัวจากส่วนประกอบย่อยๆ

Text.Insert

แทรกข้อความเข้าไปในตำแหน่งที่กำหนด

Text.Lower

Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ

Text.Remove

Text.Remove จะคืนค่าข้อความใหม่ที่ตัดตัวอักษรที่อยู่ใน removeChars ออกไปทั้งหมด เป็นฟังก์ชันตรงข้ามกับ Text.Select

Text.RemoveRange

Text.RemoveRange ใช้สำหรับลบอักขระจำนวนที่ระบุตั้งแต่ตำแหน่งที่กำหนด ค่าเริ่มต้นจะลบ 1 อักขระหากไม่ระบุจำนวน

Text.ReplaceRange

Text.ReplaceRange ใช้สำหรับแทนที่อักขระในช่วงที่กำหนดด้วยข้อความใหม่ สามารถใช้ลบหรือแทรกข้อความ

Text.Select

Text.Select จะคืนค่าข้อความใหม่ที่ประกอบด้วยตัวอักษรที่อยู่ใน selectChars เท่านั้น อักขระใดที่ไม่อยู่ในรายการนี้จะถูกลบออกไป มีประโยชน์มากในการ Clean Data

Text.Split

Text.Split(text, separator) ใช้แยกข้อความเป็น List โดยอิงตามตัวคั่น (delimiter) ที่ระบุ สามารถใช้ตัวคั่นเพียงตัวเดียวหรือหลายตัวอักษร เช่น "|" หรือ ", the " ผลลัพธ์คืนค่าเป็น List ของข้อความ

Text.Trim

Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง

Text.Upper

Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา

Table functions (1)
Table.TransformColumnNames

Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่