Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้
=Text.Clean(text as nullable text) as nullable text
=Text.Clean(text as nullable text) as nullable text
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | nullable text | Yes | ข้อความที่ต้องการลบตัวอักษรควบคุมออก ยอมรับค่า null |
Text.Clean("Hello#(lf)World")= Text.Clean("Hello#(lf)World")
"HelloWorld"
let DirtyText = "Data#(tab)Value#(cr)#(lf)Next", Cleaned = Text.Clean(DirtyText) in Cleaned= let
DirtyText = "Data#(tab)Value#(cr)#(lf)Next",
Cleaned = Text.Clean(DirtyText)
in
Cleaned
"DataValueNext"
let Source = Table.FromRows( {{"Hello#(lf)World", "Test#(tab)Data"}, {"ABC#(cr)D", "XY#(lf)Z"}}, {"Column1", "Column2"} ), Cleaned = Table.TransformColumns( Sou…= let
Source = Table.FromRows(
{{"Hello#(lf)World", "Test#(tab)Data"}, {"ABC#(cr)D", "XY#(lf)Z"}},
{"Column1", "Column2"}
),
Cleaned = Table.TransformColumns(
Source,
{{"Column1", Text.Clean}, {"Column2", Text.Clean}}
)
in
Cleaned
Column1: ["HelloWorld", "ABCD"], Column2: ["TestData", "XYZ"]
let RawData = " Text with#(tab)Spaces ", Step1 = Text.Clean(RawData), Step2 = Text.Trim(Step1) in Step2= let
RawData = " Text with#(tab)Spaces ",
Step1 = Text.Clean(RawData),
Step2 = Text.Trim(Step1)
in
Step2
"Text withSpaces"
Text.Clean ลบตัวอักษรควบคุม (Control Characters) เช่น Line Feed, Tab ส่วน Text.Trim ลบเฉพาะช่องว่าง (Space) ด้านหน้าและหลังเท่านั้น คนมักสับสนเพราะชื่อดูคล้ายๆ กัน ส่วนตัวผมแนะนำให้ใช้ทั้งคู่ – ลบ Control Character ด้วย Text.Clean แล้วลบ Space ด้วย Text.Trim นะครับ
ไม่ได้ครับ Text.Clean เลือกลบได้แค่ Control Character ที่มี Unicode code point น้อยกว่า 32 (ยกเว้น Space ที่เป็น 32) ถ้าต้องการลบ Space ธรรมดา ต้องใช้ Text.Replace หรือ Text.Trim แทน
จะคืนค่า null กลับมา ไม่มี Error ปรากฏนะครับ ซึ่งดีมากตอนทำงานกับข้อมูลที่อาจมี null cells ผมมักใช้ Text.Clean โดยไม่ต้องกังวลว่า null จะทำให้เกิด Error
ได้นะครับ Text.Clean ลบ Control Character จาก Unicode ทั้งหมด ไม่เฉพาะ ASCII เท่านั้น แต่เกือบทั้งหมดที่ใช้ข่าว ใช้บ่อยๆ จะเป็น ASCII Control Character อยู่แล้ว
Text.Clean ใช้สำหรับทำความสะอาดข้อความโดยลบตัวอักษรควบคุม (Control Characters) ทั้งหมดออก ได้แก่ Line Feed (#(lf)), Carriage Return (#(cr)), Tab (#(tab)) และอื่นๆ
ที่เจ๋งคือฟังก์ชันนี้ทำงานได้ดีมากตอนคุณนำเข้าข้อมูลจากระบบเก่าหรือไฟล์ที่มีการจัดรูปแบบแปลกๆ ซึ่งมักจะมี Control Character ซ่อนอยู่เบื้องหลัง
ส่วนตัวผมใช้ Text.Clean บ่อยมากตอนต้องทำความสะอาดข้อมูลจาก CSV หรือ TXT ที่นำมาจากระบบต่างชาติครับ เพราะระบบนั้นมักใช้ Encoding ต่างๆ แล้วปล่อยให้ Control Character อยู่ยุ่งๆ 😎