ตัวอย่างที่ 1: Unpivot คอลัมน์ที่เลือก
=Table.Unpivot(Source, {"Jan", "Feb", "Mar"}, "Month", "Sales")
ตารางที่มีคอลัมน์ Month และ Sales
หมุนข้อมูลจากหลายคอลัมน์ให้เป็นหลายแถว (Unpivot)
Table.Unpivot จะเปลี่ยนโครงสร้างตารางจากแนวนอน (Wide Format) เป็นแนวตั้ง (Long Format) โดยนำชื่อคอลัมน์ที่เลือกมาเป็นค่าในคอลัมน์ Attribute และนำข้อมูลในคอลัมน์นั้นมาเป็นค่าในคอลัมน์ Value
=Table.Unpivot(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table
=Table.Unpivot(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางที่ต้องการ Unpivot | |
| pivotColumns | list | Yes | List ของชื่อคอลัมน์ที่ต้องการหมุนลงมาเป็นแถว | |
| attributeColumn | text | Yes | ชื่อคอลัมน์ใหม่ที่จะเก็บชื่อคอลัมน์เดิม (เช่น “Month”) | |
| valueColumn | text | Yes | ชื่อคอลัมน์ใหม่ที่จะเก็บค่าข้อมูล (เช่น “Amount”) |
เปลี่ยนตารางที่มีคอลัมน์ Jan, Feb, Mar… ให้เป็นตารางที่มีคอลัมน์ Month และ Amount เพียง 2 คอลัมน์
Pivot Table ทำงานได้ดีกับข้อมูลแนวตั้ง (Long Format) การ Unpivot จึงเป็นขั้นตอนสำคัญในการเตรียมข้อมูล
=Table.Unpivot(Source, {"Jan", "Feb", "Mar"}, "Month", "Sales")
ตารางที่มีคอลัมน์ Month และ Sales
=Table.UnpivotOtherColumns(Source, {"Product", "Region"}, "Month", "Sales")
ตาราง Unpivot ยกเว้น Product และ Region
หายไปครับ Table.Unpivot จะข้ามค่า null โดยอัตโนมัติ (ไม่สร้างแถวสำหรับค่าว่าง) ทำให้ข้อมูลกระชับขึ้น
ฟังก์ชัน Table.Unpivot ใน Power Query ใช้สำหรับแปลงข้อมูลจากหลายคอลัมน์ให้กลายเป็นหลายแถว (Flatten) โดยเก็บชื่อคอลัมน์เดิมไว้ในคอลัมน์ Attribute และค่าไว้ในคอลัมน์ Value เหมาะสำหรับเตรียมข้อมูลเพื่อทำ Pivot Table หรือนำไปวิเคราะห์ต่อ