CALCULATE
อัปเดต 26 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop
เอกสารอ้างอิง: CALCULATE (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)
CALCULATE คืออะไร
คำนวณสูตรภายใต้ตัวกรองที่เพิ่ม เปลี่ยน หรือเอาออกจากตัวกรองของรายงาน เป็นฟังก์ชันที่ใช้มากที่สุดใน DAX
ใช้เมื่อไหร่
- หายอดของช่องทางหรือสินค้าที่กำหนด ไม่ว่าผู้ใช้เลือกอะไรใน Slicer
- เปลี่ยนหรือเอาตัวกรองออกเพื่อคิดสัดส่วนและการเทียบ
รูปแบบสูตร
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| expression | จำเป็น | สูตรหรือ Measure ที่จะคำนวณ |
| filter1, filter2, … | จำเป็น | เงื่อนไขบนคอลัมน์ เช่น 'ยอดขาย'[ช่องทาง] = "Online" ตารางจาก FILTER หรือ ALL / REMOVEFILTERS เพื่อเอาตัวกรองออก |
ลองเลย: ยอดขาย Online และสัดส่วนต่อยอดขาย แยกตามภูมิภาค
คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน
- พนักงานขาย[ภูมิภาค] = "กลาง"
- สินค้าไม่มีตัวกรอง
- วันที่[ปี] = 2025
- ยอดขาย[ช่องทาง] = "Online"เหลือ 25 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
| ภูมิภาค | ยอดขาย | ยอด Online | สัดส่วน Online |
|---|---|---|---|
| กลาง | |||
| เหนือ | |||
| ตะวันออกเฉียงเหนือ | |||
| ตะวันออก | |||
| ใต้ | |||
| ยอดรวม |
ถ้าคุณเขียน Excel อยู่แล้ว
=SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[ภูมิภาค], "กลาง", ยอดขาย[ช่องทาง], "Online")SUMIFS ใส่ทุกเงื่อนไขเองในสูตร CALCULATE เพิ่มเฉพาะเงื่อนไขที่ต่างจากรายงาน
ยอด Online = CALCULATE([ยอดขาย], 'ยอดขาย'[ช่องทาง] = "Online")ตัวกรองบนคอลัมน์เดียวกับ Slicer จะแทนที่ค่าที่เลือกใน Slicer
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. Slicer ช่องทาง = Modern Trade แต่ Measure CALCULATE([ยอดขาย], 'ยอดขาย'[ช่องทาง] = "Online") ได้อะไร
เงื่อนไขใน CALCULATE แทนที่ตัวกรองช่องทางจาก Slicer
2. ใน Excel ฟังก์ชันใดใกล้กับ CALCULATE([ยอดขาย], เงื่อนไข) ที่สุด
SUMIFS รวมตามเงื่อนไข แต่ต้องใส่ทุกเงื่อนไขเองในสูตร
3. ต้องการเงื่อนไข จำนวน × ราคาต่อหน่วย ≥ 20,000 ใน CALCULATE เขียนแบบใด
เงื่อนไขที่คำนวณจากสองคอลัมน์เขียนด้วย FILTER ได้ชัดที่สุด ข้อ [ยอดขาย] >= 20000 ผิดเพราะเงื่อนไขใน CALCULATE อ้าง Measure ไม่ได้
ไฟล์ฝึก CALCULATE
9Expert-DAX-CALCULATE-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1[ยอด Online] ยอดขายช่องทาง Online · กรอง ภูมิภาค = ใต้, ปี = 2024
- ข้อ 2[ยอด Online] ยอดขายช่องทาง Online · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = Online, ปี = 2025
- ข้อ 3[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ภูมิภาค = เหนือ, ปี = 2025
- ข้อ 4[สัดส่วน Online] สัดส่วนยอด Online ต่อยอดขาย · กรอง ภูมิภาค = ตะวันออก, ช่องทาง = Modern Trade, ปี = 2024
- ข้อ 5[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ปี = 2025
ไปต่อ
ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)