Thep Excel

Text.Clean – ลบตัวอักษรควบคุมออกจากข้อความ

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

=Text.Clean(text as nullable text) as nullable text

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
8/10

Difficulty
2/10

Usefulness
8/10

Syntax & Arguments

=Text.Clean(text as nullable text) as nullable text

Argument Type Required Default Description
text nullable text Yes ข้อความที่ต้องการลบตัวอักษรควบคุมออก ยอมรับค่า null

Examples

ลบ Line Feed (ตัวอักษรขึ้นบรรทัดใหม่)
Text.Clean("Hello#(lf)World")
Text.Clean ลบตัวอักษร Line Feed (#(lf)) ออก โดยเก็บเฉพาะข้อความจริง Hello กับ World และติดกันไปเลยโดยไม่มีช่องว่าง
Power Query Formula:

= Text.Clean("Hello#(lf)World")

Result:

"HelloWorld"

ลบหลาย Control Characters พร้อมกัน
let DirtyText = "Data#(tab)Value#(cr)#(lf)Next", Cleaned = Text.Clean(DirtyText) in Cleaned
ข้อความ DirtyText มี Tab (#(tab)), Carriage Return (#(cr)), และ Line Feed (#(lf)) ผสมกันอยู่ Text.Clean ลบทั้งหมดออกให้เหลือแค่ "DataValueNext" อย่างเรียบร้อย
Power Query Formula:

= let
    DirtyText = "Data#(tab)Value#(cr)#(lf)Next",
    Cleaned = Text.Clean(DirtyText)
in
    Cleaned

Result:

"DataValueNext"

ใช้ใน Table.AddColumn เพื่อทำความสะอาดคอลัมน์ทั้งหมด
let Source = Table.FromRows( {{"Hello#(lf)World", "Test#(tab)Data"}, {"ABC#(cr)D", "XY#(lf)Z"}}, {"Column1", "Column2"} ), Cleaned = Table.TransformColumns( Sou…
ใช้ Table.TransformColumns เพื่อใช้ Text.Clean กับคอลัมน์ทั้งหมด แต่ละแถวจะลบ Control Character ออกอย่างอัตโนมัติ ฉันชอบวิธีนี้มากเพราะสะดวกในการทำความสะอาดข้อมูลจำนวนมาก 😎
Power Query Formula:

= 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

Result:

Column1: ["HelloWorld", "ABCD"], Column2: ["TestData", "XYZ"]

ลบ Control Character แล้ว Trim ช่องว่างด้านหน้าหลัง
let RawData = " Text with#(tab)Spaces ", Step1 = Text.Clean(RawData), Step2 = Text.Trim(Step1) in Step2
ขั้นแรก Text.Clean ลบ Control Character (Tab) ออก ได้ " Text withSpaces " จากนั้น Text.Trim ลบช่องว่างด้านหน้าหลัง ได้ผลลัพธ์สุดท้าย "Text withSpaces" ส่วนตัวผมมักใช้ชุดนี้ร่วมกันครับ เพราะข้อมูลจริงมักมีทั้ง Control Character และช่องว่าง
Power Query Formula:

= let
    RawData = "  Text with#(tab)Spaces  ",
    Step1 = Text.Clean(RawData),
    Step2 = Text.Trim(Step1)
in
    Step2

Result:

"Text withSpaces"

FAQs

Text.Clean กับ Text.Trim ต่างกันยังไง?

Text.Clean ลบตัวอักษรควบคุม (Control Characters) เช่น Line Feed, Tab ส่วน Text.Trim ลบเฉพาะช่องว่าง (Space) ด้านหน้าและหลังเท่านั้น คนมักสับสนเพราะชื่อดูคล้ายๆ กัน ส่วนตัวผมแนะนำให้ใช้ทั้งคู่ – ลบ Control Character ด้วย Text.Clean แล้วลบ Space ด้วย Text.Trim นะครับ

Text.Clean ลบ Space ธรรมดาได้ไหม?

ไม่ได้ครับ Text.Clean เลือกลบได้แค่ Control Character ที่มี Unicode code point น้อยกว่า 32 (ยกเว้น Space ที่เป็น 32) ถ้าต้องการลบ Space ธรรมดา ต้องใช้ Text.Replace หรือ Text.Trim แทน

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

จะคืนค่า null กลับมา ไม่มี Error ปรากฏนะครับ ซึ่งดีมากตอนทำงานกับข้อมูลที่อาจมี null cells ผมมักใช้ Text.Clean โดยไม่ต้องกังวลว่า null จะทำให้เกิด Error

Text.Clean ทำงานกับ Unicode ได้ไหม?

ได้นะครับ Text.Clean ลบ Control Character จาก Unicode ทั้งหมด ไม่เฉพาะ ASCII เท่านั้น แต่เกือบทั้งหมดที่ใช้ข่าว ใช้บ่อยๆ จะเป็น ASCII Control Character อยู่แล้ว

Resources & Related

Additional Notes

Text.Clean ใช้สำหรับทำความสะอาดข้อความโดยลบตัวอักษรควบคุม (Control Characters) ทั้งหมดออก ได้แก่ Line Feed (#(lf)), Carriage Return (#(cr)), Tab (#(tab)) และอื่นๆ

ที่เจ๋งคือฟังก์ชันนี้ทำงานได้ดีมากตอนคุณนำเข้าข้อมูลจากระบบเก่าหรือไฟล์ที่มีการจัดรูปแบบแปลกๆ ซึ่งมักจะมี Control Character ซ่อนอยู่เบื้องหลัง

ส่วนตัวผมใช้ Text.Clean บ่อยมากตอนต้องทำความสะอาดข้อมูลจาก CSV หรือ TXT ที่นำมาจากระบบต่างชาติครับ เพราะระบบนั้นมักใช้ Encoding ต่างๆ แล้วปล่อยให้ Control Character อยู่ยุ่งๆ 😎

Leave a Reply

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