Thep Excel

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

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

fx
= Table.ColumnNames(table) as list

ความนิยม5/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
table table ตารางต้นทางที่ต้องการดึงชื่อคอลัมน์

Additional Notes

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

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

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

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 และคืนเป็นลิสต์ของข้อความ

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

ผลลัพธ์{"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 เพื่อนับจำนวนคอลัมน์ทั้งหมด

fx
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
เลือกคอลัมน์เฉพาะจากลิสต์ชื่อคอลัมน์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

fx
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
ตรวจสอบว่าคอลัมน์มีอยู่จริงหรือไม่let Data = Table.FromRows({{1, "Alice"}, {2, "Bob"}}, {"ID", "Name"}), ColumnNames = Table.ColumnNames(Data), HasEmail = List.Contains(ColumnNames, "Email") in…

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

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

ผลลัพธ์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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.ColumnNames จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Table.ColumnNamesTable functions
Table functions (4)
Table.Column

Table.Column ดึงค่าจากคอลัมน์เฉพาะออกมาจากตาราง และคืนค่าเป็น List เพื่อให้สามารถนำไปประมวลผลต่อได้

Table.RemoveColumns

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

Table.SelectColumns

Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น

Table.ToColumns

Table.ToColumns แปลงตาราง (Table) ให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูลจากคอลัมน์เดียว เรียงตามลำดับคอลัมน์จากซ้ายไปขวา ส่วนกลับกันของ Table.FromColumns

List functions (1)
List.Contains

List.Contains จะคืนค่า true หาก value ที่กำหนดเป็นสมาชิกของ List และคืนค่า false หากไม่พบ สามารถระบุ Comparer เพื่อกำหนดว่าจะให้ตรวจสอบแบบ Case Sensitive หรือ Case Insensitive ได้

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่