Thep Excel

Table.SelectColumnsเลือกคอลัมน์ที่ต้องการจากตาราง

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

fx
= Table.SelectColumns(table, columns, [missingField])

ความนิยม9/10
ความยาก2/10
ประโยชน์9/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table table ตารางต้นฉบับที่ต้องการเลือกคอลัมน์
columns text or list ชื่อคอลัมน์ที่ต้องการ (ข้อความเดี่ยว หรือ list of text)
[missingField]ไม่บังคับ MissingField code Error (ค่าเริ่มต้นจะ error ถ้าหาคอลัมน์ไม่เจอ) พฤติกรรมเมื่อคอลัมน์ไม่มี: MissingField.UseNull หรือ MissingField.Ignore

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

Table.SelectColumns(table, columns, [missingField]) ใช้ในการ keep หรือ drop คอลัมน์ที่เราต้องการจากตารางข้อมูล

ส่วนตัวผมใช้ Table.SelectColumns เวลาที่ต้องการลดจำนวนคอลัมน์หลัง import ข้อมูล เพื่อให้โมเดลปะหนาเพียบ ทำให้ Power BI ที่แสดงผลเร็วขึ้น และเข้าใจข้อมูลที่จำเป็นง่ายขึ้นครับ เจ๋งตรงที่สามารถจัดเรียงลำดับคอลัมน์ได้ด้วย – ลำดับใน columns parameter นั่นแหละคือลำดับในตารางผลลัพธ์

How it works

ลดขนาดข้อมูล

เลือกเฉพาะคอลัมน์ที่จำเป็นต้องใช้ในการวิเคราะห์ เพื่อลดการใช้หน่วยความจำ

จัดลำดับคอลัมน์ใหม่

เมื่อระบุ List ของคอลัมน์ ผลลัพธ์จะเรียงลำดับตาม List นั้น (ใช้ Reorder ได้ในตัว)

Examples

เลือกคอลัมน์เดี่ยวlet Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"]}), SelectedColumns = Tabl…

ใช้ text string เดี่ยว "Name" เพื่อเลือกแค่คอลัมน์เดียว

fx
let
Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"]}),
SelectedColumns = Table.SelectColumns(Source, "Name")
in
SelectedColumns

ผลลัพธ์ตารางที่มีแค่คอลัมน์ Name ที่เหลือ 2 แถว
เลือกหลายคอลัมน์พร้อมจัดเรียงลำดับlet Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"]}), SelectedColumns = Tabl…

ลำดับใน list {"Name", "CustomerID"} คือลำดับคอลัมน์ในผลลัพธ์ – จึงต่างจากตารางต้นฉบับ

fx
let
Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"]}),
SelectedColumns = Table.SelectColumns(Source, {"Name", "CustomerID"})
in
SelectedColumns

ผลลัพธ์ตารางสองคอลัมน์ชิด Name อยู่ซ้าย CustomerID อยู่ขวา
ลองเลือกคอลัมน์ที่ไม่มีในตาราง (จะ error)let Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}), SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"}) in…

ค่าเริ่มต้น missingField ไม่ระบุ จึง error เมื่อขาด Email – เพื่อแก้ให้เพิ่ม MissingField.UseNull

fx
let
Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}),
SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"})
in
SelectedColumns

ผลลัพธ์Expression.Error: ไม่พบคอลัมน์ Email
ใช้ MissingField.UseNull เพื่อสร้างคอลัมน์ nulllet Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}), SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"}, Mis…

MissingField.UseNull สร้างคอลัมน์ Email ขึ้นมาหากไม่มี แล้วใส่ค่า null ทั้งหมด

fx
let
Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}),
SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"}, MissingField.UseNull)
in
SelectedColumns

ผลลัพธ์ตาราง 2 คอลัมน์: CustomerID = 1, Email = null

FAQs

จะลดจำนวนคอลัมน์ได้ไหม? ต้องทำอะไร?+

ใช่ Table.SelectColumns นั่นแหละ – ระบุชื่อคอลัมน์ที่ต้องการเท่านั้น คอลัมน์ไม่อยู่ในรายการจะถูก drop อัตโนมัติ

ต่างกับ Table.RemoveColumns ยังไง?+

Table.SelectColumns ระบุ keep ไหนแบบ whitelist (เก็บแค่ที่ระบุ), Table.RemoveColumns ระบุ remove ไหนแบบ blacklist (ลบของที่ระบุ) – ผลลัพธ์อาจเหมือนกันแต่การ think ต่างกัน

ลำดับคอลัมน์ในผลลัพธ์จากที่ไหน?+

จากลำดับใน columns parameter นั่นเอง – ถ้า list {"Name", "ID"} จะ Name อยู่ซ้าย ID อยู่ขวา ไม่ได้ตามตารางต้นฉบับ

เกิด error ว่า 'column not found' เพราะไง?+

ชื่อคอลัมน์พิมพ์ผิด หรือคอลัมน์ไม่มีจริง – เช็คชื่อให้ถูก case-sensitive หรือเพิ่ม MissingField.UseNull ถ้าคอลัมน์บางอย่างอาจขาด

Resources & Related

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

ฟังก์ชันนี้Table.SelectColumnsTable functions
Table functions (12)
Table.Column

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

Table.ColumnNames

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

Table.ConformToPageReader

Table.ConformToPageReader ปรับโครงสร้างตารางให้เข้ากับกลไก page reader โดยรับฟังก์ชันสำหรับการจัดรูปแบบ เป็นฟังก์ชันภายในของ Power Query ไม่แนะนำให้ใช้ในโค้ดทั่วไป

Table.FromRecords

แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON

Table.RemoveColumns

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

Table.RenameColumns

Table.RenameColumns ใช้สำหรับเปลี่ยนชื่อคอลัมน์หนึ่งหรือหลายคอลัมน์ในตารางพร้อมกัน โดยส่งผ่าน list ของ rename pairs {ชื่อเก่า, ชื่อใหม่}

Table.ReorderColumns

จัดเรียงลำดับคอลัมน์ในตารางใหม่ตามลำดับที่ต้องการ พร้อมจัดการกรณีคอลัมน์หายไป

Table.ReplacePartitionKey

Table.ReplacePartitionKey แทนที่ partition key ของตาราง ซึ่งเป็น metadata สำหรับการแบ่งพาร์ทิชันและการจัดการข้อมูลภายใน เอาไว้ควบคุมวิธีการแบ่งพาร์ทิชันของข้อมูลในตารางนั้น

Table.SelectRows

Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่

Table.TransformColumnNames

Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix

Table.TransformColumns

Table.TransformColumns ใช้สำหรับแปลงข้อมูลในคอลัมน์โดยใช้ฟังก์ชันที่กำหนดไว้ แต่ละคอลัมน์สามารถมีการแปลงแตกต่างกันได้ รองรับการเปลี่ยนแปลงประเภทข้อมูลในเวลาเดียวกัน

Tables.GetRelationships

Tables.GetRelationships ดึงข้อมูลความสัมพันธ์ (Relationships) ระหว่างตารางต่างๆ จาก Navigation Table เพื่อวิเคราะห์โครงสร้างข้อมูล

Accessing data functions (1)
SharePoint.Tables

SharePoint.Tables เป็นฟังก์ชันสำหรับดึงข้อมูลทั้งหมดจาก SharePoint List มา Power Query โดยคืนค่าตารางที่มีแถวสำหรับแต่ละรายการใน List พร้อมกับจัดการการเชื่อมต่อและการรับรองตัวตนอัตโนมัติ

Comments

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