---
title: Table.RemoveColumns – ลบคอลัมน์ที่ไม่ต้องการจาก table
url: https://www.thepexcel.com/functions/power-query/table-functions/table-removecolumns/
type: function-explainer
program: Power Query
syntax: "Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number) as table"
date: 2025-12-03
updated: 2025-12-20
scores:
  popularity: 10
  difficulty: 2
  usefulness: 9
---

# Table.RemoveColumns – ลบคอลัมน์ที่ไม่ต้องการจาก table

> Table.RemoveColumns ใช้ลบคอลัมน์เดียวหรือหลายคอลัมน์จาก table ครั้งเดียว เป็นวิธีที่สะดวกเมื่อต้องกา

## คำอธิบาย

Table.RemoveColumns ใช้ลบคอลัมน์เดียวหรือหลายคอลัมน์จาก table ครั้งเดียว เป็นวิธีที่สะดวกเมื่อต้องการลบ column ที่ไม่ต้องการ เช่น unwanted columns จากการโหลด Excel หรือ column ชั่วคราวหลังใช้คำนวณเสร็จ

## Syntax

```excel
Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number) as table
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| table | Yes | table |  | Table ที่ต้องการลบ column ออก |
| columns | Yes | any |  | ชื่อ column ที่ต้องลบ (ส่งเป็น text สำหรับ 1 column เช่น "Phone" หรือ list สำหรับหลาย column เช่น {"Phone", "Email", "Address"}) |
| missingField | No | nullable number | MissingField.Error | พฤติกรรมเมื่อ column ไม่มีจริง ๆ มีตัวเลือก MissingField.Ignore (ข้ามไป ไม่ error) หรือ MissingField.Error (ค่าปกติ เกิด error) |

## เคสการใช้งาน

### ลบคอลัมน์ชั่วคราว

ลบคอลัมน์ที่ใช้คำนวณเสร็จแล้วและไม่ต้องการแสดงผลลัพธ์สุดท้าย

### กำจัดข้อมูล Sensitive

ลบคอลัมน์ที่มีข้อมูลส่วนบุคคล (PII) ก่อนแชร์ข้อมูล

## ตัวอย่าง

### 1. ลบ column เดียว - ลบ Phone

```excel
= let
    Customers = Table.FromRecords({
        [ID = 1, Name = "Bob", Phone = "123-4567", Email = "bob@email.com"],
        [ID = 2, Name = "Alice", Phone = "234-5678", Email = "alice@email.com"]
    }),
    Removed = Table.RemoveColumns(Customers, "Phone")
in
    Removed
```

**ผลลัพธ์:** `Table with 3 columns: ID, Name, Email (Phone ลบออก)`

ส่ง column ชื่อ "Phone" เป็น text ลบออก ใช้ได้เลยเวลาลบแค่ column เดียว

### 2. ลบหลาย columns พร้อมกัน

```excel
= let
    Sales = Table.FromRecords({
        [OrderID = 1001, Product = "Laptop", Price = 50000, InternalID = "X123", TempCalc = 100, Status = "Shipped"]
    }),
    Clean = Table.RemoveColumns(Sales, {"InternalID", "TempCalc"})
in
    Clean
```

**ผลลัพธ์:** `Table with 4 columns: OrderID, Product, Price, Status`

ส่ง list {} ของชื่อ columns ที่จะลบ ดีกว่าการลบทีละตัวหลายๆ step เพราะเร็วกว่าและโค้ดสะอาดกว่า

### 3. ลบ columns ที่อาจไม่มีจริง (ไม่ error)

```excel
= let
    Data = Table.FromRecords({
        [ID = 1, Name = "Product A", Price = 100]
    }),
    SafeRemove = Table.RemoveColumns(
        Data, 
        {"Phone", "Email", "Address"}, 
        MissingField.Ignore
    )
in
    SafeRemove
```

**ผลลัพธ์:** `Table unchanged with ID, Name, Price columns (Phone/Email/Address ไม่มี แต่ไม่ error)`

MissingField.Ignore บอก Power Query ให้ข้ามไปถ้า column ไม่มี ไม่เกิด error จะดีมากตอนข้อมูล source เปลี่ยนโครงสร้าง

### 4. ลบ unwanted columns จากการโหลด Excel

```excel
= let
    Excel = Table.FromRecords({
        [ID = 1, Name = "Item", Column1 = "", Column2 = "", Column3 = ""]
    }),
    Clean = Table.RemoveColumns(Excel, {"Column1", "Column2", "Column3"})
in
    Clean
```

**ผลลัพธ์:** `Table with 2 columns: ID, Name`

Excel มักขยับ empty columns มากับไฟล์ Table.RemoveColumns ช่วยลบออกได้ในครั้งเดียว

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

- ลบหลาย columns พร้อมกันเป็นแนวดี Table.RemoveColumns(Source, {"Col1", "Col2", "Col3"}) ดีกว่าการลบทีละตัวหลายๆ step เพราะเร็วกว่า โค้ดสะอาดกว่า

- ลืมไม่ได้ใส่ MissingField.Ignore ถ้าข้อมูล source อาจเปลี่ยนโครงสร้าง columns บ่อยๆ ช่วยป้องกัน query ล่มจากความเสี่ยง

- ถ้า columns ที่ต้องลบเยอะมาก ลองใช้ Table.SelectColumns แล้วชี้ columns ที่ต้องเก็บแทน บ่อยครั้งง่ายกว่า

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

**Q: ถ้าลบ column ที่ไม่มีจริง ๆ จะเกิดอะไร?**

จะเกิด Error: 'The column... of the table wasn't found' ซึ่งถ้าไม่แก้จะทำให้ query ล่มทั้งตัว การแก้คือใส่ MissingField.Ignore: Table.RemoveColumns(Source, "Phone", MissingField.Ignore) แล้วมันจะข้ามไปถ้า column ไม่มี

**Q: ผมต้องการลบ columns ทั้งหมด ยกเว้นบางตัว ทำไง?**

ใช้ Table.SelectColumns แทน มันทำงานตรงข้าม คุณชี้เลยว่า column ไหนที่ต้องเก็บ ไม่ใช่ลบออก เช่น Table.SelectColumns(Source, {"ID", "Name", "Email"})

**Q: ลบ 1 column ส่ง text, ลบหลาย columns ส่ง list ใช่ไหม?**

ใช่ ถ้าลบ 1 column ส่ง text: "Phone" หรือส่ง list เดียวตัวก็ได้ {"Phone"} แต่ลบหลายตัว ต้องส่ง list {"Phone", "Email", "Address"}

**Q: ผมลบ columns หลายทีซ้ำๆ ต้องเขียน Table.RemoveColumns หลายครั้ง?**

ไม่ต้อง ส่ง list ของ columns ทั้งหมดที่ต้องลบในครั้งเดียว ดีกว่าแนวดี: Table.RemoveColumns(Source, {"Col1", "Col2", "Col3"}) แทนการลบทีละตัว 3 step

## ฟังก์ชันที่เกี่ยวข้อง

- [Table.SelectColumns – เลือกคอลัมน์ที่ต้องการจากตาราง](https://www.thepexcel.com/functions/power-query/table-functions/table-selectcolumns/)
- [Table.AddColumn – เพิ่มคอลัมน์ใหม่ด้วย Calculated Values](https://www.thepexcel.com/functions/power-query/table-functions/table-addcolumn/)
- [Table.RenameColumns – เปลี่ยนชื่อคอลัมน์ในตาราง](https://www.thepexcel.com/functions/power-query/table-functions/table-renamecolumns/)

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

- [Microsoft Learn: Table.RemoveColumns](https://learn.microsoft.com/en-us/powerquery-m/table-removecolumns) _(official)_
- [PowerQuery.how](https://powerquery.how/table-removecolumns/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/table-functions/table-removecolumns/](https://www.thepexcel.com/functions/power-query/table-functions/table-removecolumns/)_
