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

ฟังก์ชัน DAX: CALCULATE

CALCULATE คำนวณค่าของนิพจน์ภายใต้ filter context ที่ถูกปรับเปลี่ยน (เพิ่ม แทนที่ หรือแก้ตัวกรอง).

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

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

ฟังก์ชัน DAX: CALCULATE คือเรื่องที่ช่วยให้เราใช้ทำรายงานและ dashboard จากข้อมูลได้ถูกทางขึ้น

ระดับ

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

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

คุณต้องการ measure สำหรับกลุ่มหรือเงื่อนไขเฉพาะเจาะจง

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

คำนวณยอดขายเฉพาะแถวที่อยู่ในช่องทาง Online เท่านั้น

เห็นภาพ: ทริคนี้เป็นยังไง

ก่อน: measure รวมทุกช่องทาง แล้วไปนั่งกรอง slicer เอาเองทีละภาพ
Sales Amount = SUM(Sales[Amount])
หลัง: CALCULATE ใส่ตัวกรอง Online ไว้ในตัว measure เลย ใช้ซ้ำได้ทุกภาพ
Online Sales =
CALCULATE(
  [Sales Amount],
  Sales[Channel] = "Online"
)
อยากได้ยอดเฉพาะช่องทาง Online — แทนที่จะกรองมือทุกภาพ ให้ CALCULATE จัดการ filter context ใน measure เดียว

ใช้ตอนไหน?

  • คุณต้องการ measure สำหรับกลุ่มหรือเงื่อนไขเฉพาะเจาะจง
  • คุณต้องการเปลี่ยน filter context (บริบทการกรองข้อมูล) ภายใน measure
  • คุณต้องการคำนวณตามช่วงเวลา อัตราส่วน หรือ KPI (ตัวชี้วัดผลงาน) แบบมีเงื่อนไข

ถ้าเทียบกับ Excel

กล่องนี้ช่วยแปลคำ Power BI ให้โยงกับงาน Excel ที่คุ้นอยู่แล้ว.

ใน Excel

คล้าย SUMIFS ที่รวมยอดภายใต้เงื่อนไข แต่ Power BI ต้องคิดร่วมกับ slicer และ visual ที่กำลังกรองอยู่

ใน Power BI

CALCULATE เปลี่ยน filter context ของ measure เพื่อให้ได้ตัวเลขเฉพาะมุมที่ต้องการ

จำแค่นี้ก่อน

อย่าใส่ CALCULATE ทุกสูตร ให้ใช้เมื่อมีเหตุผลว่าต้องเปลี่ยน filter

ต่อไปทำอะไร

ถ้างงเรื่องผลลัพธ์ ให้กลับไปอ่าน Filter Context ก่อน

ความหมาย

CALCULATE คือฟังก์ชันหลักของ DAX (ภาษาสูตรของ Power BI) ใช้คำนวณ measure (ค่าที่คำนวณใน Power BI) หรือนิพจน์ พร้อมกับเพิ่ม แทนที่ หรือปรับเปลี่ยนตัวกรองไปด้วย

รูปแบบของ CALCULATE

อาร์กิวเมนต์ตัวแรกคือนิพจน์ที่จะคำนวณ ส่วนอาร์กิวเมนต์ที่เหลือใช้ปรับ filter context

Sales Amount = SUM(Sales[Amount])

Online Sales =
CALCULATE(
  [Sales Amount],
  Sales[Channel] = "Online"
)

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

เจาะเฉพาะช่องทางเดียว

คำนวณยอดขายเฉพาะแถวที่อยู่ในช่องทาง Online เท่านั้น

ลองเล่นดู