Thep Excel

TRIM – ลบช่องว่างส่วนเกินในข้อความ

ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น

=TRIM(<text>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
2/10

Usefulness
6/10

Syntax & Arguments

=TRIM(<text>)

Argument Type Required Default Description
text String Yes ข้อความที่ต้องการลบช่องว่างส่วนเกิน สามารถเป็นลิเทอรัลข้อความ เป็นการ reference คอลัมน์ หรือผลลัพธ์จากฟังก์ชันอื่น

How it works

ทำความสะอาดข้อมูลก่อนจับคู่

ลดปัญหาการจับคู่ไม่ติดเพราะมีช่องว่างนำหน้า/ท้าย หรือช่องว่างหลายตัว

ตรวจค่าว่างที่มีแต่ช่องว่าง

ใช้คู่กับ LEN เพื่อเช็คว่าข้อความว่างจริงหรือไม่

Examples

ตัวอย่างที่ 1: ลบช่องว่างนำหน้า ท้าย และช่องว่างหลายตัว
TRIM(" Hello World ")
ลบช่องว่าง 2 ตัวนำหน้า 3 ตัวตรงกลาง 2 ตัวท้าย เหลือแค่ช่องว่างเดี่ยวตรงกลางคำ
DAX Formula:

= TRIM("  Hello   World  ")

Result:

"Hello World"

ตัวอย่างที่ 2: ทำความสะอาดคอลัมน์ชื่อลูกค้า
ชื่อสะอาด = TRIM(Customers[Name])
สร้างคอลัมน์ที่ทำความสะอาดแล้ว เหมาะสำหรับนำไป VLOOKUP หรือ join กับตาราอื่น
DAX Formula:

ชื่อสะอาด = TRIM(Customers[Name])

Result:

ชื่อลูกค้าที่ไม่มีช่องว่างแฝง

ตัวอย่างที่ 3: ตรวจสอบว่าข้อความว่างหรือไม่ หลังจากตัดช่องว่าง
เป็นค่าว่างจริง? = IF( LEN(TRIM(Customers[Email])) = 0, "ว่างจริง", "มีข้อมูล" )
TRIM ช่วยค้นหาช่องว่างแฝงที่ดูเหมือนข้อมูล แต่จริง ๆ ว่างเปล่า LEN นับความยาวหลังตัดแล้ว
DAX Formula:

เป็นค่าว่างจริง? = 
IF(
    LEN(TRIM(Customers[Email])) = 0,
    "ว่างจริง",
    "มีข้อมูล"
)

Result:

"ว่างจริง" หรือ "มีข้อมูล"

ตัวอย่างที่ 4: Normalization ก่อน EXACT() comparison (แนวคิด)
ทั้งสองเหมือนกันจริง? = EXACT( TRIM(UPPER(Customers[Name])), TRIM(UPPER(Lookup[Name])) )
TRIM + UPPER ช่วยให้ EXACT ตรวจสอบข้อความได้แม่นยำ ไม่โดนช่องว่างหรือตัวพิมพ์แตกต่าง
DAX Formula:

ทั้งสองเหมือนกันจริง? = 
EXACT(
    TRIM(UPPER(Customers[Name])),
    TRIM(UPPER(Lookup[Name]))
)

Result:

TRUE() หรือ FALSE()

ตัวอย่างที่ 5: ใช้ TRIM ใน CALCULATETABLE เพื่อ join ข้อมูล
สินค้าจับคู่แล้ว = CALCULATETABLE( Products, Products[Code] = TRIM(Imports[Code]) )
ใช้ TRIM เพื่อให้ filter condition ตรงกัน โดยเฉพาะเวลา join ข้อมูลจากเอกสารต่างๆ
DAX Formula:

สินค้าจับคู่แล้ว = 
CALCULATETABLE(
    Products,
    Products[Code] = TRIM(Imports[Code])
)

Result:

ตารางสินค้าที่ matched กับรหัสที่ทำความสะอาดแล้ว

FAQs

TRIM ลบช่องว่างทั้งหมดหรือแค่บางตัว?

TRIM ลบแค่บางตัว: ลบช่องว่างนำหน้า ลบช่องว่างท้าย และลดช่องว่างหลายตัวระหว่างคำให้เหลือเพียงตัวเดียว ไม่ลบช่องว่างเดี่ยวระหว่างคำ ซึ่งสำคัญมากเพราะ “Hello World” ต้องคงช่องว่างตรงกลาง ไม่ใช่กลายเป็น “HelloWorld”

ทำไมบางครั้ง VLOOKUP ไม่เจอ ทั้ง ๆ ที่ข้อมูลชัดๆ อยู่?

มักเป็นเพราะช่องว่างแฝง หลายท่านไม่เห็นว่า Lookup value มีช่องว่างนำหน้า ท้าย หรือหลายตัวระหว่างคำ TRIM ก่อนนำไป VLOOKUP จะช่วยได้เยอะ โดยเฉพาะข้อมูลจากระบบต่างๆ

TRIM จะลบ Nonbreaking space ( ) ได้ไหม?

ไม่ได้ TRIM ลบแค่ space ASCII มาตรฐาน (code 32) ส่วน nonbreaking space (code 160) ที่เจอบ่อยในเว็บ TRIM จะไม่ทำอะไรกับมัน ถ้าต้องลบทั้งสองนั้นให้ใช้ SUBSTITUTE() ร่วมกับ CHAR(160) เพื่อแทนที่ nonbreaking space เป็น space ธรรมดาก่อน

ผมต้องใช้ TRIM ในคอลัมน์ที่เป็น Measure ได้ไหม?

ได้ เพราะ TRIM ส่งกลับ text string เหมือนกับ VALUE/FORMAT ฟังก์ชันอื่น ๆ แต่สำหรับ Measure มักเป็นเรื่องระหว่าง Dimension/Filter ไม่ค่อยต้องใช้ TRIM ใน Measure เท่า ส่วนใหญ่ใช้ใน Calculated Column หรือใน Power Query ก่อนจะ Load เข้า Data Model

TRIM vs CLEAN ต่างกันอย่างไร?

DAX มีแค่ TRIM (ลบช่องว่าง) ไม่มี CLEAN เหมือน Excel ถ้าอยากลบ control characters และ nonprinting characters ก็ต้องใช้ SUBSTITUTE หรือ REGEX (ถ้าใช้ Power BI/DAX ชั่วใหม่) แต่ปกติ TRIM + SUBSTITUTE ก็ครอบคลุมเรื่องทำความสะอาดข้อความแล้ว

Resources & Related

Additional Notes

TRIM ลบช่องว่างส่วนเกินในข้อความ โดยตัดทั้งช่องว่างนำหน้า ช่องว่างท้าย และลดช่องว่างหลายตัวระหว่างคำให้เหลือเพียงตัวเดียว ฟังก์ชันนี้เหมาะสำหรับทำความสะอาดข้อมูลที่นำเข้ามาจากระบบอื่น เพราะสำคัญนิดเดือยว่า ช่องว่างแฝง ๆ ที่มองไม่เห็นมักทำให้ VLOOKUP/XLOOKUP/SEARCH ไม่เจอค่าถึงแม้ว่าข้อมูลดูเหมือนเหมือนกันเลย

ที่เจ๋งคือ TRIM ช่วยแก้ปัญหา Data Integration ที่ยุ่งยากที่สุด คือเมื่อข้อมูลมาจากหลายระบบ (Excel ที่มีข้อมูลเก่า เว็บไซต์ CSV ต่างๆ) บางอันมีช่องว่างแฝง บางอันไม่มี ถ้าไม่ TRIM ก่อน join/match จะเจอค่าแปลก ๆ เช่นคณะหลายคนพยายาม VLOOKUP แล้วไม่เจอทั้ง ๆ ที่ข้อมูลชัด ๆ อยู่

ส่วนตัวผมมักใช้ TRIM เป็นตัวแรกในขั้นตอน Data Transformation ทั้ง DAX และ Power Query อยากจะหลีกเลี่ยง magic ค่อนข้างบ่อย ผมเขียน VAR เก็บค่า TRIM ไว้แล้วค่อยนำไปทำ UPPER/LOWER/SUBSTITUTE เพื่อให้มั่นใจว่าข้อมูลสะอาด ส่วนใหญ่จะไม่มีปัญหา แต่ข้อมูลจริง ๆ มีเรื่องแปลก ๆ เสมอ

Leave a Reply

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