---
title: TRIMRANGE – ฟังก์ชันตัดแถว/คอลัมน์ว่างออกจากขอบ
url: https://www.thepexcel.com/functions/excel/lookup-and-reference/trimrange/
type: function-explainer
program: Excel
syntax: "=TRIMRANGE(range, [trim_rows], [trim_cols])"
date: 2026-09-21
scores:
  popularity: 4
  difficulty: 4
  usefulness: 7
---

# TRIMRANGE – ฟังก์ชันตัดแถว/คอลัมน์ว่างออกจากขอบ

> ฟังก์ชันใหม่ใน Excel 365 ที่ตัดแถวและคอลัมน์ว่างออกจากขอบของช่วงข้อมูล ช่วยให้การอ้างอิงช่วงกว้าง ๆ

## คำอธิบาย

ฟังก์ชันใหม่ใน Excel 365 ที่ตัดแถวและคอลัมน์ว่างออกจากขอบของช่วงข้อมูล ช่วยให้การอ้างอิงช่วงกว้าง ๆ หรือทั้งคอลัมน์ปลอดภัยและไม่ดึงข้อมูลว่างเข้ามาปนกับสูตร dynamic array

## Syntax

```excel
=TRIMRANGE(range, [trim_rows], [trim_cols])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| range | Yes | Range/Array |  | ช่วงเซลล์หรืออาร์เรย์ที่ต้องการตัดแถว/คอลัมน์ว่างออกจากขอบ รองรับการอ้างอิงทั้งคอลัมน์หรือทั้งแถว เช่น A:A |
| trim_rows | No | Number (0-3) |  | กำหนดวิธีตัดแถวว่าง: 0 = ไม่ตัด, 1 = ตัดเฉพาะแถวว่างด้านบน (leading), 2 = ตัดเฉพาะแถวว่างด้านล่าง (trailing), 3 = ตัดทั้งบนและล่าง (ค่า default ถ้าไม่ใส่) |
| trim_cols | No | Number (0-3) |  | กำหนดวิธีตัดคอลัมน์ว่าง: 0 = ไม่ตัด, 1 = ตัดเฉพาะคอลัมน์ว่างด้านซ้าย (leading), 2 = ตัดเฉพาะคอลัมน์ว่างด้านขวา (trailing), 3 = ตัดทั้งซ้ายและขวา (ค่า default ถ้าไม่ใส่) |

## ตัวอย่าง

### 1. ตัดทุกขอบด้วยค่า default

```excel
=TRIMRANGE(A1:E20)
```

**ผลลัพธ์:** `B3:D15 — เหลือเฉพาะบล็อกข้อมูลจริง`

ถ้าข้อมูลจริงอยู่แค่ B3:D15 แต่ในช่วง A1:E20 มีแถวและคอลัมน์ว่างล้อมรอบ TRIMRANGE จะตัดส่วนว่างนอกขอบทิ้งให้อัตโนมัติ เหลือแค่ B3:D15

### 2. ตัดเฉพาะขอบบนกับซ้าย (leading)

```excel
=TRIMRANGE(A1:E20,1,1)
```

**ผลลัพธ์:** `B3:E20 — ตัดเฉพาะแถวว่างด้านบนกับคอลัมน์ว่างด้านซ้าย ขอบล่างและขวายังเหมือนเดิม`

เหมาะกับกรณีที่รู้ว่าข้อมูลจะขยายลงล่างหรือขวาเพิ่มเรื่อย ๆ อยากเก็บพื้นที่ขอบล่าง/ขวาไว้ไม่ให้สูตรพัง

### 3. อ้างอิงทั้งคอลัมน์ให้ปลอดภัยด้วย trim-reference operator

```excel
=SORT(A.:.A)
```

**ผลลัพธ์:** `เท่ากับ =SORT(TRIMRANGE(A:A,3,3)) คือดึงเฉพาะแถวที่มีข้อมูลจริงในคอลัมน์ A มาเรียง ไม่ลากเซลล์ว่างเป็นล้านแถวมาด้วย`

จุดสองจุด .:. ที่แทรกในการอ้างอิง A:A คือ shorthand ของ TRIMRANGE ทำให้อ้างอิงทั้งคอลัมน์ได้โดยไม่ต้องกลัวประสิทธิภาพหรือแถวว่างกวนสูตร dynamic array

### 4. ทำลิสต์ไม่ซ้ำจากทั้งคอลัมน์โดยไม่มีช่องว่างต่อท้าย

```excel
=SORT(UNIQUE(B.:.B))
```

**ผลลัพธ์:** `รายชื่อไม่ซ้ำจากคอลัมน์ B เรียงจากน้อยไปมาก โดยไม่มีช่องว่างติดมาท้ายลิสต์`

ถ้าเขียน =SORT(UNIQUE(B:B)) ตรง ๆ จะได้ค่าว่างติดมาด้วย เพราะ B:B ลากเซลล์ว่างทั้งคอลัมน์เข้ามาคำนวณ พอเปลี่ยนเป็น B.:.B ซึ่งเป็น shorthand ของ TRIMRANGE(B:B,3,3) ก็เหลือเฉพาะแถวที่มีข้อมูลจริง เหมาะมากกับการทำแหล่งข้อมูลให้ dropdown ที่ต้องยืดหดตามข้อมูลเอง

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้เปลี่ยนนิสัยจากการอ้างอิงทั้งคอลัมน์แบบ A:A มาเป็น A.:.A ทุกครั้งที่ใช้กับสูตร dynamic array เพราะปลอดภัยกว่าและไม่ต้องมานั่งเดาว่าข้อมูลจะขยายไปถึงแถวไหน

- ถ้าต้องส่งช่วงที่ผ่าน TRIMRANGE แล้วไปต่อในสูตรซ้อนหลายชั้น ผมมักเขียน TRIMRANGE เต็มรูปแทน operator แบบจุด เพราะอ่านง่ายกว่าเวลากลับมาแก้ทีหลัง

- ฟังก์ชันนี้ใช้ได้เฉพาะ Excel for Microsoft 365 เท่านั้น ถ้าไฟล์ต้องแชร์กับคนที่ใช้ Excel เวอร์ชันเก่าหรือ perpetual license ต้องเช็คก่อนว่าเขาเปิดไฟล์แล้วสูตรจะไม่พัง

## คำถามที่พบบ่อย

**Q: TRIMRANGE ต่างจาก TRIM ยังไง**

คนละงานเลยครับ TRIM ใช้ตัดช่องว่าง (space) ภายในข้อความของเซลล์เดียว ส่วน TRIMRANGE ทำงานกับทั้งช่วง ตัดแถวหรือคอลัมน์ที่ว่างทั้งแถว/คอลัมน์ออกจากขอบนอกของช่วงนั้น ไม่เกี่ยวกับข้อความในเซลล์เลย

**Q: ใช้ trim-reference operator (.:. หรือ .: หรือ :.) แทน TRIMRANGE ได้เลยไหม ต่างกันตรงไหน**

ใช้แทนกันได้ครับ ผลลัพธ์เหมือนกันทุกประการ ต่างแค่วิธีเขียน operator แบบจุดจะกระชับกว่าเวลาพิมพ์สด ๆ ในเซลล์ ส่วน TRIMRANGE เหมาะกับตอนที่ต้องส่งช่วงเป็น argument ให้ฟังก์ชันอื่นต่อ หรืออยากให้สูตรอ่านง่ายเวลาคนอื่นมาดูทีหลัง ผมเลือกใช้ operator เวลาพิมพ์เร็ว ๆ และสลับมาเขียน TRIMRANGE เต็มรูปเวลาสูตรซับซ้อนหลายชั้น

**Q: ถ้าในช่วงข้อมูลมีแถวว่างอยู่ตรงกลาง TRIMRANGE จะตัดออกด้วยไหม**

ไม่ครับ TRIMRANGE สแกนจากขอบเข้ามาเท่านั้น เจอเซลล์ไม่ว่างเมื่อไหร่ก็หยุดตัดทันที แถวหรือคอลัมน์ว่างที่แทรกอยู่กลางบล็อกข้อมูลจะยังอยู่เหมือนเดิม ถ้าอยากเอาแถวว่างกลางตารางออกด้วยต้องไปใช้ FILTER ร่วมด้วย

**Q: ทำไม TRIMRANGE ถึงสำคัญกับสูตร dynamic array อย่าง UNIQUE, SORT, FILTER**

เพราะฟังก์ชันพวกนี้ประมวลผลทุกเซลล์ในช่วงที่อ้างอิง ถ้าอ้างอิงทั้งคอลัมน์แบบ A:A ตรง ๆ มันจะแบกเซลล์ว่างเป็นล้านแถวไปด้วย ทำให้ผลลัพธ์มีค่าว่างปนหรือช้าเวลาไฟล์ใหญ่ ผมเจอปัญหานี้บ่อยตอนทำ dropdown list ที่ต้องอัปเดตอัตโนมัติ พอมี TRIMRANGE หรือ .:. ก็จบปัญหานี้ไปเลย

## แหล่งข้อมูลเพิ่มเติม

- [TRIMRANGE function - Microsoft Support](https://support.microsoft.com/en-us/excel/functions/trimrange-function) _(official)_
- [TRIMRANGE Function - Exceljet](https://exceljet.net/functions/trimrange-function) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/excel/lookup-and-reference/trimrange/](https://www.thepexcel.com/functions/excel/lookup-and-reference/trimrange/)_
