Thep Excel

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

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

= Table.ColumnNames(table as table) as list

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

= Table.ColumnNames(table as table) as list

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

How it works

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

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

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

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

Examples

ดึงชื่อคอลัมน์ทั้งหมดจากตาราง
let Sales = Table.FromRows({{1, "Item A", 100}, {2, "Item B", 200}}, {"ID", "Product", "Amount"}), ColumnNames = Table.ColumnNames(Sales) in ColumnNames
ดึงชื่อคอลัมน์ทั้ง 3 ชื่อจากตาราง Sales และคืนเป็นลิสต์ของข้อความ
Power Query Formula:

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

Result:

{"ID", "Product", "Amount"}

นับจำนวนคอลัมน์
let Data = Table.FromRows({{1, "A", 100, "Active"}, {2, "B", 200, "Inactive"}}, {"ID", "Name", "Value", "Status"}), ColumnNames = Table.ColumnNames(Data), Colum…
ใช้ List.Count ร่วมกับ Table.ColumnNames เพื่อนับจำนวนคอลัมน์ทั้งหมด
Power Query Formula:

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

Result:

4

เลือกคอลัมน์เฉพาะจากลิสต์ชื่อคอลัมน์
let Source = Table.FromRows({{1, "X", 50}, {2, "Y", 60}}, {"ID", "Name", "Value"}), AllColumns = Table.ColumnNames(Source), FirstTwoColumns = List.FirstN(AllCol…
ดึงชื่อคอลัมน์ทั้งหมด แล้วใช้ List.FirstN เพื่อเลือกเฉพาะ 2 คอลัมน์แรก จากนั้นใช้กับ Table.SelectColumns
Power Query Formula:

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)

Result:

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

ตรวจสอบว่าคอลัมน์มีอยู่จริงหรือไม่
let Data = Table.FromRows({{1, "Alice"}, {2, "Bob"}}, {"ID", "Name"}), ColumnNames = Table.ColumnNames(Data), HasEmail = List.Contains(ColumnNames, "Email") in…
ใช้ List.Contains เพื่อตรวจสอบว่าคอลัมน์ "Email" มีอยู่ในตารางหรือไม่
Power Query Formula:

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

Result:

false

FAQs

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

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

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

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

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

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

Resources & Related

Additional Notes

Table.ColumnNames เป็นฟังก์ชันหลักสำหรับดึงชื่อคอลัมน์จากตารางใน Power Query ต่างจาก Table.Column ที่ดึงค่าข้อมูลจริง ColumnNames เพียงดึงชื่อเท่านั้น

ที่เจ๋งคือสามารถใช้เพื่อสร้าง dynamic queries ที่ปรับตัวตามโครงสร้างข้อมูลอัตโนมัติ เช่น เมื่อจำนวนคอลัมน์หรือชื่อคอลัมน์เปลี่ยนแปลง Query ยังทำงานได้ต่อไปโดยไม่ต้องแก้ไขโค้ด

ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยมากเวลาต้องวนลูปประมวลผลคอลัมน์ทั้งหมด หรือต้องรู้ว่าตารางมีกี่คอลัมน์และชื่ออะไรบ้าง 😎

Leave a Reply

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