Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| text | text | ข้อความต้นฉบับที่ต้องการค้นหาและแทนที่ |
| old | text | ข้อความย่อยที่ต้องการค้นหาและแทนที่ |
| new | text | ข้อความใหม่ที่จะแทนที่ |
Text.Replace ทำหน้าที่ค้นหาข้อความย่อย (substring) ที่ระบุจากข้อความหลัก แล้วแทนที่ด้วยข้อความใหม่ทีละครั้งที่เจอในข้อความทั้งหมด
ส่วนตัวมักใช้ Text.Replace เพื่อเช็ดทำความสะอาด (clean up) ข้อมูลที่ไม่สอดคล้องกัน เช่น ลบ suffix, prefix หรือแทนที่เครื่องหมายพิเศษ 😎 สิ่งที่ต้องระวัง คือ Text.Replace เป็น Case Sensitive ถ้าต้องการแทนที่ไม่สนใจ Case ต้องใช้ Text.Upper หรือ Text.Lower ก่อน หรือใช้ฟังก์ชันที่มี Comparer.OrdinalIgnoreCase
เปลี่ยนรหัสสินค้าจาก "PROD-" เป็น "ITEM-"
แทนที่คำผิด หรือสัญลักษณ์พิเศษ เช่น "#N/A" ด้วยค่าว่าง
แทนที่ช่องว่างในชื่อไฟล์ด้วยเครื่องหมายขีดกลาง (-) สำหรับ URL
ค้นหา "pp" ใน "apple" แล้วแทนที่ด้วย "rr" ได้ผลลัพธ์เป็น "arrle"
แทนที่ทุกตัวอักษร 'a' ด้วย 'o' ได้ 3 ครั้ง = 2 × 3 × 4 = bonono
ลบเครื่องหมาย hyphen ออกจากรหัสสินค้า ทำให้ข้อมูลสะอาดขึ้น
แทนที่ %20 (URL space encoding) ด้วยช่องว่างจริง เพื่อให้ข้อมูลอ่านง่ายขึ้น
ใช่ครับ เป็น Case Sensitive สมบูรณ์ ตัวอย่างเช่น Text.Replace("Apple", "apple", "Orange") จะไม่แทนที่อะไรเลย ถ้าต้องการแทนที่ไม่สนใจ Case สามารถใช้ Text.Upper(text) หรือ Text.Lower(text) ทั้งคำค้นหาและข้อความเดิมก่อน
Text.Replace จะแทนที่ทุกครั้งที่พบ ถ้าต้องแทนที่แค่ครั้งแรก ต้องใช้วิธีอื่น เช่น สร้าง custom formula ด้วย Text.RemoveRange ร่วมกับ Text.Insert และ Text.PositionOf เพื่อหาตำแหน่งแรกที่พบ
จะได้ null กลับมา ถ้าต้องการหลีกเลี่ยงสถานการณ์นี้ ตรวจสอบ null ก่อน เช่น if text null then Text.Replace(text, old, new) else ""
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Replace จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ดึงข้อความหลังจากตัวคั่นที่กำหนด สามารถเลือกว่าจะใช้ตัวคั่นที่ 1, 2, 3 เป็นต้น
Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้
Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น (separator) เช่น ลูกน้ำ เครื่องหมายขีด หรือ space ได้ เหมาะสำหรับสร้างชื่อเต็ม ที่อยู่ หรือรหัสประจำตัวจากส่วนประกอบย่อยๆ
แทรกข้อความเข้าไปในตำแหน่งที่กำหนด
Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ
Text.Remove จะคืนค่าข้อความใหม่ที่ตัดตัวอักษรที่อยู่ใน removeChars ออกไปทั้งหมด เป็นฟังก์ชันตรงข้ามกับ Text.Select
Text.RemoveRange ใช้สำหรับลบอักขระจำนวนที่ระบุตั้งแต่ตำแหน่งที่กำหนด ค่าเริ่มต้นจะลบ 1 อักขระหากไม่ระบุจำนวน
Text.ReplaceRange ใช้สำหรับแทนที่อักขระในช่วงที่กำหนดด้วยข้อความใหม่ สามารถใช้ลบหรือแทรกข้อความ
Text.Select จะคืนค่าข้อความใหม่ที่ประกอบด้วยตัวอักษรที่อยู่ใน selectChars เท่านั้น อักขระใดที่ไม่อยู่ในรายการนี้จะถูกลบออกไป มีประโยชน์มากในการ Clean Data
Text.Split(text, separator) ใช้แยกข้อความเป็น List โดยอิงตามตัวคั่น (delimiter) ที่ระบุ สามารถใช้ตัวคั่นเพียงตัวเดียวหรือหลายตัวอักษร เช่น "|" หรือ ", the " ผลลัพธ์คืนค่าเป็น List ของข้อความ
Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง
Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา
Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่