Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
= Table.SelectColumns(table, columns, optional missingField)
= Table.SelectColumns(table, columns, optional missingField)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางต้นฉบับที่ต้องการเลือกคอลัมน์ | |
| columns | text or list | Yes | ชื่อคอลัมน์ที่ต้องการ (ข้อความเดี่ยว หรือ list of text) | |
| missingField | MissingField code | Optional | Error (ค่าเริ่มต้นจะ error ถ้าหาคอลัมน์ไม่เจอ) | พฤติกรรมเมื่อคอลัมน์ไม่มี: MissingField.UseNull หรือ MissingField.Ignore |
เลือกเฉพาะคอลัมน์ที่จำเป็นต้องใช้ในการวิเคราะห์ เพื่อลดการใช้หน่วยความจำ
เมื่อระบุ List ของคอลัมน์ ผลลัพธ์จะเรียงลำดับตาม List นั้น (ใช้ Reorder ได้ในตัว)
let Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"]}), SelectedColumns = Tabl…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…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 อยู่ขวา
let Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}), SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"}) in…let
Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}),
SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"})
in
SelectedColumns
Expression.Error: ไม่พบคอลัมน์ Email
let Source = Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}), SelectedColumns = Table.SelectColumns(Source, {"CustomerID", "Email"}, Mis…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
ใช่ Table.SelectColumns นั่นแหละ – ระบุชื่อคอลัมน์ที่ต้องการเท่านั้น คอลัมน์ไม่อยู่ในรายการจะถูก drop อัตโนมัติ
Table.SelectColumns ระบุ keep ไหนแบบ whitelist (เก็บแค่ที่ระบุ), Table.RemoveColumns ระบุ remove ไหนแบบ blacklist (ลบของที่ระบุ) – ผลลัพธ์อาจเหมือนกันแต่การ think ต่างกัน
จากลำดับใน columns parameter นั่นเอง – ถ้า list {“Name”, “ID”} จะ Name อยู่ซ้าย ID อยู่ขวา ไม่ได้ตามตารางต้นฉบับ
ชื่อคอลัมน์พิมพ์ผิด หรือคอลัมน์ไม่มีจริง – เช็คชื่อให้ถูก case-sensitive หรือเพิ่ม MissingField.UseNull ถ้าคอลัมน์บางอย่างอาจขาด
Table.SelectColumns(table, columns, [missingField]) ใช้ในการ keep หรือ drop คอลัมน์ที่เราต้องการจากตารางข้อมูล
ส่วนตัวผมใช้ Table.SelectColumns เวลาที่ต้องการลดจำนวนคอลัมน์หลัง import ข้อมูล เพื่อให้โมเดลปะหนาเพียบ ทำให้ Power BI ที่แสดงผลเร็วขึ้น และเข้าใจข้อมูลที่จำเป็นง่ายขึ้นครับ เจ๋งตรงที่สามารถจัดเรียงลำดับคอลัมน์ได้ด้วย – ลำดับใน columns parameter นั่นแหละคือลำดับในตารางผลลัพธ์