Table.ColumnNames ดึงชื่อคอลัมน์ทั้งหมดจากตารางและคืนค่าเป็นลิสต์ของข้อความ เหมาะสำหรับการทำงานแบบไดนามิกกับโครงสร้างตารางที่ไม่แน่นอน
= Table.ColumnNames(table as table) as list
= Table.ColumnNames(table as table) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางต้นทางที่ต้องการดึงชื่อคอลัมน์ |
เมื่อต้องการทราบว่าตารางมีคอลัมน์ใดบ้าง หรือตรวจสอบว่าคอลัมน์ที่ต้องการมีอยู่หรือไม่
ใช้ผลลัพธ์ของ Table.ColumnNames เพื่อทำการจัดการคอลัมน์แต่ละชื่ออย่างไดนามิก
let Sales = Table.FromRows({{1, "Item A", 100}, {2, "Item B", 200}}, {"ID", "Product", "Amount"}), ColumnNames = Table.ColumnNames(Sales) in ColumnNameslet
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…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…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…let
Data = Table.FromRows({{1, "Alice"}, {2, "Bob"}}, {"ID", "Name"}),
ColumnNames = Table.ColumnNames(Data),
HasEmail = List.Contains(ColumnNames, "Email")
in
HasEmail
false
Table.ColumnNames ส่งกลับเฉพาะชื่อคอลัมน์เป็นลิสต์ของข้อความ ส่วน Table.Column ดึงค่าข้อมูลจริงจากคอลัมน์นั้นเป็นลิสต์ ผมแนะนำให้ใช้ ColumnNames เวลาต้องการแค่ชื่อ และ Column เวลาต้องการข้อมูล
นั่นคือจุดเด่นของ Table.ColumnNames! สามารถใช้ผลลัพธ์กับ List.Select หรือ List.Transform เพื่อประมวลผลชื่อคอลัมน์แบบไดนามิก ผมเคยใช้เพื่อสร้าง query ที่รองรับจำนวนคอลัมน์แปรผัน
จะคืนค่าเป็นลิสต์ว่าง {} (Empty List) แทนที่จะ Error เพื่อให้สะดวกในการตรวจสอบด้วย List.Count หรือ List.IsEmpty
Table.ColumnNames เป็นฟังก์ชันหลักสำหรับดึงชื่อคอลัมน์จากตารางใน Power Query ต่างจาก Table.Column ที่ดึงค่าข้อมูลจริง ColumnNames เพียงดึงชื่อเท่านั้น
ที่เจ๋งคือสามารถใช้เพื่อสร้าง dynamic queries ที่ปรับตัวตามโครงสร้างข้อมูลอัตโนมัติ เช่น เมื่อจำนวนคอลัมน์หรือชื่อคอลัมน์เปลี่ยนแปลง Query ยังทำงานได้ต่อไปโดยไม่ต้องแก้ไขโค้ด
ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยมากเวลาต้องวนลูปประมวลผลคอลัมน์ทั้งหมด หรือต้องรู้ว่าตารางมีกี่คอลัมน์และชื่ออะไรบ้าง 😎