Pivot กับ Unpivot
พลิกตารางที่หัวเป็นเดือนให้กลายเป็นตารางยาวที่ Power BI ชอบ และพลิกกลับได้
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
Pivot กับ Unpivot คือเรื่องที่ช่วยให้เราใช้เชื่อมต่อและทำความสะอาดข้อมูลซ้ำๆ ให้เป็นขั้นตอนก่อนเอาไปทำรายงานได้ถูกทางขึ้น
ระดับ
เหมาะกับคนที่เริ่มลงมือทำแล้ว
ใช้เมื่อไหร่
ไฟล์ที่ได้มาเอาเดือนหรือปีไปเป็นหัวคอลัมน์ ทำให้สร้าง measure ลำบาก
อ่านแล้วทำอะไรต่อ
ตารางมีคอลัมน์ Product, Jan, Feb, Mar เลือก Product ไว้แล้ว Unpivot Other Columns ได้คอลัมน์ Month กับ Amount
เห็นภาพ: ทริคนี้เป็นยังไง
Product Jan Feb Mar
-------- ----- ----- -----
A 100 120 90
B 80 75 110= Table.UnpivotOtherColumns(Source, {"Product"}, "Month", "Amount")
Product Month Amount
-------- ------ ------
A Jan 100
A Feb 120
A Mar 90
B Jan 80
B Feb 75
B Mar 110ใช้ตอนไหน?
- ไฟล์ที่ได้มาเอาเดือนหรือปีไปเป็นหัวคอลัมน์ ทำให้สร้าง measure ลำบาก
- ต้องการรูปตารางยาว (long format) ก่อนสร้างโมเดลใน Power BI
- ต้องการพลิกตารางยาวกลับเป็นตารางสรุปแบบกางออกเพื่อนำเสนอ
ความหมาย
Unpivot คือการพลิกตารางที่กางออกกว้าง (เช่น คอลัมน์เป็น ม.ค. ก.พ. มี.ค.) ให้กลายเป็นตารางยาวที่มีคอลัมน์ Attribute และ Value ซึ่งเป็นรูปแบบที่ Power BI และ PivotTable ทำงานด้วยได้ดี ส่วน Pivot คือการพลิกกลับ จากตารางยาวให้กางออกเป็นคอลัมน์
เลือกคอลัมน์ที่จะพลิก
เลือกคอลัมน์ที่เป็น 'มิติ' ไว้ (เช่น Product) แล้วเลือกคอลัมน์เดือนทั้งหมด คลิกขวา > Unpivot Columns เคล็ดลับ: ใช้ Unpivot Other Columns จะทนทานกว่าเมื่อมีคอลัมน์เดือนเพิ่มเข้ามาใหม่
Transform > Unpivot Columns > Unpivot Other Columns
// M ที่ได้:
= Table.UnpivotOtherColumns(Source, {"Product"}, "Month", "Amount")
// พลิกกลับ:
= Table.Pivot(Source, List.Distinct(Source[Month]), "Month", "Amount")ตัวอย่างการใช้
พลิกตารางยอดขายรายเดือน
ตารางมีคอลัมน์ Product, Jan, Feb, Mar เลือก Product ไว้แล้ว Unpivot Other Columns ได้คอลัมน์ Month กับ Amount
= Table.UnpivotOtherColumns(Source, {"Product"}, "Month", "Amount")