---
title: Table.ColumnNames – ดึงชื่อคอลัมน์จากตาราง
url: https://www.thepexcel.com/functions/power-query/table-functions/table-columns/
type: function-explainer
program: Power Query
syntax: = Table.ColumnNames(table as table) as list
date: 2025-12-12
updated: 2025-12-25
scores:
  popularity: 5
  difficulty: 4
  usefulness: 6
---

# Table.ColumnNames – ดึงชื่อคอลัมน์จากตาราง

> Table.ColumnNames ดึงชื่อคอลัมน์ทั้งหมดจากตารางและคืนค่าเป็นลิสต์ของข้อความ เหมาะสำหรับการทำงานแบบได

## คำอธิบาย

Table.ColumnNames ดึงชื่อคอลัมน์ทั้งหมดจากตารางและคืนค่าเป็นลิสต์ของข้อความ เหมาะสำหรับการทำงานแบบไดนามิกกับโครงสร้างตารางที่ไม่แน่นอน

## Syntax

```excel
= Table.ColumnNames(table as table) as list
```

**Variant**

```excel
Table.ColumnNames(MyTable)
```

ดึงชื่อคอลัมน์ทั้งหมดจากตาราง MyTable

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| table | Yes | table |  | ตารางต้นทางที่ต้องการดึงชื่อคอลัมน์ |

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

### ตรวจสอบชื่อคอลัมน์ในตาราง

เมื่อต้องการทราบว่าตารางมีคอลัมน์ใดบ้าง หรือตรวจสอบว่าคอลัมน์ที่ต้องการมีอยู่หรือไม่

_เหมาะกับ:_ column-inspection

### วนลูปทำการกับคอลัมน์ต่างๆ

ใช้ผลลัพธ์ของ Table.ColumnNames เพื่อทำการจัดการคอลัมน์แต่ละชื่ออย่างไดนามิก

_เหมาะกับ:_ dynamic-column-processing

## ตัวอย่าง

### 1. ดึงชื่อคอลัมน์ทั้งหมดจากตาราง

```excel
let
    Sales = Table.FromRows({{1, "Item A", 100}, {2, "Item B", 200}}, {"ID", "Product", "Amount"}),
    ColumnNames = Table.ColumnNames(Sales)
in
    ColumnNames
```

**ผลลัพธ์:** `{"ID", "Product", "Amount"}`

ดึงชื่อคอลัมน์ทั้ง 3 ชื่อจากตาราง Sales และคืนเป็นลิสต์ของข้อความ

### 2. นับจำนวนคอลัมน์

```excel
let
    Data = Table.FromRows({{1, "A", 100, "Active"}, {2, "B", 200, "Inactive"}}, {"ID", "Name", "Value", "Status"}),
    ColumnNames = Table.ColumnNames(Data),
    ColumnCount = List.Count(ColumnNames)
in
    ColumnCount
```

**ผลลัพธ์:** `4`

ใช้ List.Count ร่วมกับ Table.ColumnNames เพื่อนับจำนวนคอลัมน์ทั้งหมด

### 3. เลือกคอลัมน์เฉพาะจากลิสต์ชื่อคอลัมน์

```excel
let
    Source = Table.FromRows({{1, "X", 50}, {2, "Y", 60}}, {"ID", "Name", "Value"}),
    AllColumns = Table.ColumnNames(Source),
    FirstTwoColumns = List.FirstN(AllColumns, 2)
in
    Table.SelectColumns(Source, FirstTwoColumns)
```

**ผลลัพธ์:** `ตารางที่มีเฉพาะคอลัมน์ ID และ Name`

ดึงชื่อคอลัมน์ทั้งหมด แล้วใช้ List.FirstN เพื่อเลือกเฉพาะ 2 คอลัมน์แรก จากนั้นใช้กับ Table.SelectColumns

### 4. ตรวจสอบว่าคอลัมน์มีอยู่จริงหรือไม่

```excel
let
    Data = Table.FromRows({{1, "Alice"}, {2, "Bob"}}, {"ID", "Name"}),
    ColumnNames = Table.ColumnNames(Data),
    HasEmail = List.Contains(ColumnNames, "Email")
in
    HasEmail
```

**ผลลัพธ์:** `false`

ใช้ List.Contains เพื่อตรวจสอบว่าคอลัมน์ "Email" มีอยู่ในตารางหรือไม่

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

- ผมแนะนำให้ใช้ Table.ColumnNames ร่วมกับ List.Select เพื่อค้นหาคอลัมน์ที่ตรงกับรูปแบบ เช่น คอลัมน์ที่ขึ้นต้นด้วย 'ID'

- ถ้าต้องการแยกคอลัมน์ที่เป็นข้อมูลตัวเลขออกจาก Text ให้ใช้ Table.ColumnsOfType ซึ่งดึงชื่อคอลัมน์ตามประเภทข้อมูล

- ผลลัพธ์ที่ได้เป็นลิสต์ธรรมดา สามารถนำไปใช้กับฟังก์ชัน List อื่นๆ ได้ เช่น List.Count, List.FirstN, List.Contains เป็นต้น

- ส่วนตัวผมมักใช้ร่วมกับ Table.SelectColumns หรือ Table.RemoveColumns เพื่อควบคุมคอลัมน์แบบไดนามิก

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

**Q: ต่างกันระหว่าง Table.ColumnNames กับ Table.Column อย่างไร?**

Table.ColumnNames ส่งกลับเฉพาะชื่อคอลัมน์เป็นลิสต์ของข้อความ ส่วน Table.Column ดึงค่าข้อมูลจริงจากคอลัมน์นั้นเป็นลิสต์ ผมแนะนำให้ใช้ ColumnNames เวลาต้องการแค่ชื่อ และ Column เวลาต้องการข้อมูล

**Q: ใช้ยังไงถ้าต้องการลิสต์ชื่อคอลัมน์แบบไดนามิก?**

นั่นคือจุดเด่นของ Table.ColumnNames! สามารถใช้ผลลัพธ์กับ List.Select หรือ List.Transform เพื่อประมวลผลชื่อคอลัมน์แบบไดนามิก ผมเคยใช้เพื่อสร้าง query ที่รองรับจำนวนคอลัมน์แปรผัน

**Q: ถ้าตารางว่างเปล่า (ไม่มีคอลัมน์) จะเกิดอะไรขึ้น?**

จะคืนค่าเป็นลิสต์ว่าง {} (Empty List) แทนที่จะ Error เพื่อให้สะดวกในการตรวจสอบด้วย List.Count หรือ List.IsEmpty

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

- [Microsoft Learn: Table.ColumnNames](https://learn.microsoft.com/en-us/powerquery-m/table-columnnames) _(official)_
- [Microsoft Learn: Table Functions](https://learn.microsoft.com/en-us/powerquery-m/table-functions) _(official)_
- [Microsoft Learn: Table.Column](https://learn.microsoft.com/en-us/powerquery-m/table-column) _(official)_
- [Microsoft Learn: Table.SelectColumns](https://learn.microsoft.com/en-us/powerquery-m/table-selectcolumns) _(official)_

---

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