ข้อมูลที่ก๊อปมาจากเว็บ ระบบบัญชี หรือไฟล์ที่คนอื่นพิมพ์ มักมีช่องว่างแอบอยู่หน้า-หลังคำ มองด้วยตาไม่เห็น แต่ทำให้รายงานนับซ้ำ หรือสูตรค้นหาไม่เจอ
TRIM ลบช่องว่างส่วนเกินออก: ตัดหัวท้ายทั้งหมด และย่อช่องว่างหลายตัวตรงกลางเหลือตัวเดียว — บทความนี้ทดสอบในไฟล์จริงทั้งแบบตั้งภาษาไทยและภาษาอังกฤษ เพราะสองแบบนี้ทำงานไม่เหมือนกัน
TRIM ทำอะไร
| ข้อมูลเดิม | สูตร | ผล |
|---|---|---|
| " สมชาย ใจดี " | =TRIM(A2) | "สมชาย ใจดี" |
| ช่องว่างแบบเว็บ (CHAR 160) | =TRIM(SUBSTITUTE(A2,CHAR(160)," ")) | TRIM อย่างเดียวลบไม่ได้ ต้องแปลงก่อน |
| ทั้งคอลัมน์ทีเดียว | =ARRAYFORMULA(TRIM(A2:A)) | สูตรเดียวล้างทุกแถว |
| ขึ้นบรรทัดใหม่ในช่อง | =TRIM(CLEAN(A2)) | CLEAN ลบอักขระที่พิมพ์ไม่ได้ |
วิธีจับว่ามีช่องว่างแอบอยู่: ใช้ =LEN(A2) นับตัวอักษร ถ้าได้มากกว่าที่ตาเห็น แปลว่ามีของเกินมา (ภาษาไทยนับสระและวรรณยุกต์เป็นตัวอักษรด้วย "กรุงเทพ" จึงได้ 7)
ไฟล์ภาษาอังกฤษ / Excel: ช่องว่างทำให้ VLOOKUP หาไม่เจอ
ไฟล์ที่ตั้งภาษา (Locale) เป็นสหรัฐอเมริกา และไฟล์ Excel ทั้งหมด เทียบข้อความแบบตัวต่อตัว "กรุงเทพ " (มีช่องว่างท้าย) จึงไม่เท่ากับ "กรุงเทพ":
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | สาขาที่ก๊อปมา | ความยาว | VLOOKUP ตรง ๆ | + TRIM | + TRIM + SUBSTITUTE | สาขา | ค่าส่ง | |
| 2 | กรุงเทพ | 8 | #N/A | 50 | 50 | กรุงเทพ | 50 | |
| 3 | เชียงใหม่ | 9 | 80 | 80 | 80 | เชียงใหม่ | 80 | |
| 4 | ขอนแก่น | 8 | #N/A | #N/A | 60 | ขอนแก่น | 60 |
สูตรในช่องสีฟ้า (ช่วงเช่น C2:C4 = พิมพ์ที่ช่องแรกแล้วลากลง):
- B2:B4
=LEN(A2) - C2:C4
=VLOOKUP(A2,$G$2:$H$4,2,FALSE) - D2:D4
=VLOOKUP(TRIM(A2),$G$2:$H$4,2,FALSE) - E2:E4
=VLOOKUP(TRIM(SUBSTITUTE(A2,CHAR(160)," ")),$G$2:$H$4,2,FALSE)
ทดสอบจริงในไฟล์ที่ตั้งภาษาเป็นสหรัฐอเมริกา: LEN ฟ้องว่า กรุงเทพ มีตัวอักษรเกิน 1 ตัว (ช่องว่างท้าย) จึงหาไม่เจอจนกว่าจะ TRIM · ขอนแก่น ติดช่องว่างแบบเว็บ (CHAR(160)) ที่ TRIM ลบไม่ได้ ต้องแปลงด้วย SUBSTITUTE ก่อน · Excel ทำงานแบบเดียวกับไฟล์ภาษาอังกฤษนี้
ไฟล์ภาษาไทย: ค้นหาเจอ แต่รายงานยังนับซ้ำ
เรื่องที่หลายบทความไม่ได้บอก: เมื่อไฟล์ตั้งภาษาเป็นไทย Google Sheets มองข้ามช่องว่างให้เวลาค้นหา — VLOOKUP, COUNTIF, SUMIF, MATCH หาเจอทั้งที่มีช่องว่างเกิน (เราทดสอบในไฟล์จริงแล้ว) แต่ฟังก์ชันที่ดึง "ค่าที่ไม่ซ้ำ" อย่าง UNIQUE ยังมองว่าเป็นคนละค่า:

ภาพจากไฟล์ Google Sheets จริง · เปิดไฟล์ตัวอย่างนี้ (ดูอย่างเดียว — ไฟล์ → ทำสำเนา เพื่อลองแก้)
ดูเป็นตาราง (ก๊อปตัวเลขได้)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | สาขา (ก๊อปมา) | ความยาว | นับอะไร | ผล | |
| 2 | กรุงเทพ | 7 | สาขาไม่ซ้ำ (ตรง ๆ) | 5 | |
| 3 | กรุงเทพ | 8 | สาขาไม่ซ้ำ (หลัง TRIM) | 3 | |
| 4 | เชียงใหม่ | 9 | VLOOKUP หา "กรุงเทพ" ในแถว 3 | พบ | |
| 5 | เชียงใหม่ | 10 | EXACT เทียบตัวต่อตัว | FALSE | |
| 6 | ขอนแก่น | 7 |
สูตรในช่องสีฟ้า (ช่วงเช่น C2:C4 = พิมพ์ที่ช่องแรกแล้วลากลง):
- B2:B6
=LEN(A2) - E2
=COUNTA(UNIQUE(A2:A6)) - E3
=COUNTA(UNIQUE(ARRAYFORMULA(TRIM(A2:A6)))) - E4
=IF(ISNA(VLOOKUP("กรุงเทพ",A3:A3,1,FALSE)),"ไม่พบ","พบ") - E5
=EXACT(A2,A3)
ทดสอบจริงในไฟล์ภาษาไทย: VLOOKUP / COUNTIF / MATCH มองข้ามช่องว่างให้ (หาเจอ) แต่ UNIQUE ได้ 5 สาขาทั้งที่มีจริง 3 — รายงานสรุปที่ใช้ UNIQUE จะมีแถวซ้ำ ต้อง TRIM ก่อน
ผลคือรายงานสรุปที่ใช้ UNIQUE จะมี "กรุงเทพ" สองแถว ยอดแยกกันคนละครึ่ง — และถ้าส่งไฟล์ให้คนที่ใช้ Excel หรือเปลี่ยนภาษาไฟล์เมื่อไหร่ สูตรค้นหาจะเริ่มพังทันที สรุปคือ ล้างข้อมูลด้วย TRIM ไว้เสมอ ไม่ว่าไฟล์ตั้งภาษาอะไร
ดูภาษาของไฟล์ได้ที่ ไฟล์ → การตั้งค่า → ภาษา (Locale)
ล้างทั้งคอลัมน์แบบถาวร: 2 วิธี
- 1
ใช้เครื่องมือในตัว (เร็วสุด)
เลือกคอลัมน์ → ข้อมูล (Data) → การล้างข้อมูล (Data cleanup) → ตัดช่องว่าง (Trim whitespace) ข้อมูลเดิมถูกแก้ทันที ไม่ต้องใช้สูตร - 2
ใช้สูตรแล้ววางทับ
คอลัมน์ช่วย=ARRAYFORMULA(TRIM(A2:A))→ ก๊อปผลลัพธ์ → คลิกขวาที่คอลัมน์เดิม → วางแบบพิเศษ → วางค่าเท่านั้น → ลบคอลัมน์ช่วย - 3
กันไม่ให้เกิดซ้ำ
ข้อมูลที่พิมพ์ซ้ำ ๆ เช่น ชื่อสาขา สถานะ เปลี่ยนเป็นดรอปดาวน์ (ข้อมูล → การตรวจสอบข้อมูล) คนกรอกจะพิมพ์เกินไม่ได้ตั้งแต่ต้น
ข้อผิดพลาดที่เจอบ่อย
TRIM แล้วยังหาไม่เจอ
TRIM แล้วตัวเลขกลายเป็นข้อความ
ช่องว่างตรงกลางระหว่างชื่อกับนามสกุลหายหมด
อยากได้ระบบที่รวมข้อมูลหลายไฟล์ ล้างให้สะอาด แล้วสรุปเป็นรายงานเดียว?
คำถามที่ถามบ่อย
TRIM ใน Google Sheets ทำอะไร?
ลบช่องว่างหน้าและหลังข้อความทั้งหมด และย่อช่องว่างหลายตัวที่อยู่ติดกันตรงกลางให้เหลือตัวเดียว เช่น " สมชาย ใจดี " เป็น "สมชาย ใจดี"
ทำไม VLOOKUP หาไม่เจอทั้งที่ข้อมูลมีอยู่?
ในไฟล์ที่ตั้งภาษาอังกฤษหรือใน Excel สาเหตุอันดับต้นคือช่องว่างแอบอยู่ท้ายคำ ใช้ =VLOOKUP(TRIM(A2),…) หรือล้างข้อมูลด้วย TRIM ก่อน ส่วนไฟล์ภาษาไทย Sheets มองข้ามช่องว่างให้ ให้ตรวจการสะกดแทน เช่น เ สองตัวแทน แ
TRIM ลบช่องว่างตรงกลางไหม?
ไม่ลบทั้งหมด จะเหลือช่องว่างตัวเดียวคั่นระหว่างคำ ถ้าต้องการลบทุกช่องว่างใช้ =SUBSTITUTE(A2," ","")
ล้างช่องว่างทั้งคอลัมน์ทีเดียวยังไง?
เลือกคอลัมน์ แล้วไปที่ ข้อมูล → การล้างข้อมูล → ตัดช่องว่าง หรือใช้สูตร =ARRAYFORMULA(TRIM(A2:A)) ในคอลัมน์ใหม่
TRIM ใน Excel เหมือน Google Sheets ไหม?
TRIM ทำงานเหมือนกัน แต่ Excel ไม่มองข้ามช่องว่างเวลาค้นหา ช่องว่างเกินจึงทำให้ VLOOKUP และ COUNTIF ไม่เจอในทุกไฟล์ Excel
