กลับไปหน้า Power Query
ทริคPower Query

Group By

สรุปยอดแบบ PivotTable แต่ทำในขั้นเตรียมข้อมูลก่อนส่งเข้ารายงาน

เริ่มอ่านตรงนี้ก่อน

อธิบายแบบง่าย

Group By คือเรื่องที่ช่วยให้เราใช้เชื่อมต่อและทำความสะอาดข้อมูลซ้ำๆ ให้เป็นขั้นตอนก่อนเอาไปทำรายงานได้ถูกทางขึ้น

ระดับ

เหมาะกับคนที่เริ่มลงมือทำแล้ว

ใช้เมื่อไหร่

ต้องการยอดรวม/ค่าเฉลี่ย/จำนวนนับ ต่อกลุ่ม ก่อนนำเข้ารายงาน

อ่านแล้วทำอะไรต่อ

จัดกลุ่มด้วยคอลัมน์ Province แล้วสร้างคอลัมน์ TotalSales = Sum of Amount ได้ตารางสรุประดับจังหวัด

ใช้ตอนไหน?

  • ต้องการยอดรวม/ค่าเฉลี่ย/จำนวนนับ ต่อกลุ่ม ก่อนนำเข้ารายงาน
  • ข้อมูลดิบละเอียดเกินไป อยากยุบให้เหลือระดับสรุปเพื่อให้ model เบาลง
  • ต้องการนับจำนวนแถวซ้ำต่อคีย์ เพื่อตรวจหาข้อมูลซ้ำ

ความหมาย

Group By คือการยุบหลายแถวให้เหลือแถวสรุปตามกลุ่ม เช่น รวมยอดขายต่อจังหวัด หรือ นับจำนวนคำสั่งซื้อต่อลูกค้า คล้าย PivotTable แต่ทำใน Power Query เพื่อให้ผลสรุปถูกบันทึกเป็นขั้นตอนที่รีเฟรชซ้ำได้

เลือกคอลัมน์จัดกลุ่มและวิธีรวม

เลือก Group By แล้วระบุคอลัมน์ที่ใช้จัดกลุ่ม ตามด้วยคอลัมน์ผลรวม เช่น Sum, Count Rows, Average หากต้องสรุปหลายค่าให้กด Advanced เพื่อเพิ่มหลาย aggregation

Transform > Group By
// Group by: Province | New column: TotalSales = Sum of Amount
// M ที่ได้:
= Table.Group(Source, {"Province"},
    {{"TotalSales", each List.Sum([Amount]), type number}})

ตัวอย่างการใช้

รวมยอดขายต่อจังหวัด

จัดกลุ่มด้วยคอลัมน์ Province แล้วสร้างคอลัมน์ TotalSales = Sum of Amount ได้ตารางสรุประดับจังหวัด

= Table.Group(Source, {"Province"},
    {{"TotalSales", each List.Sum([Amount]), type number}})