ใช้ฟังก์ชันตัวทำซ้ำการรวม
แต่ละฟังก์ชันการสรุปคอลัมน์เดียวมีฟังก์ชันตัวทำซ้ำที่เทียบเท่ากัน ส่วนต่อไปนี้จะพิจารณาสถานการณ์การรวมสองอย่างเมื่อฟังก์ชันตัวทําซ้ํามีประโยชน์: การสรุปที่ซับซ้อนและการสรุปเกรนที่สูงขึ้น
การสรุปที่ซับซ้อน:
ในส่วนนี้ คุณจะสร้างหน่วยวัดแรกของคุณที่ใช้ฟังก์ชันตัวทำซ้ำ ก่อนอื่น ให้ดาวน์โหลดและเปิดไฟล์ Adventure Works DW 2020 M05.pbix ถัดไป ให้เพิ่มข้อกำหนดหน่วยวัดต่อไปนี้:
Revenue =
SUMX(
Sales,
Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)
จัดรูปแบบหน่วยวัด รายได้ เป็นสกุลเงินด้วยตําแหน่งทศนิยมสองจุด จากนั้นเพิ่มลงในภาพตารางที่พบใน หน้า 1 ของรายงาน
ด้วยการใช้ฟังก์ชันตัวทำซ้ำ ศูตรหน่วยวัดรายได้จะรวมมากกว่าค่าของคอลัมน์เดียว สำหรับแต่ละแถว จะใช้ค่าบริบทแถวของสามคอลัมน์เพื่อสร้างจำนวนรายได้
ในตอนนี้ ให้เพิ่มหน่วยวัดอื่นดังนี้:
Discount =
SUMX(
Sales,
Sales[Order Quantity]
* (
RELATED('Product'[List Price]) - Sales[Unit Price]
)
)
จัดรูปแบบหน่วยวัดส่วนลด เป็นสกุลเงินด้วยตำแหน่งทศนิยมสองจุด จากนั้นเพิ่มลงในภาพตาราง
โปรดสังเกตว่าสูตรใช้ RELATED
ฟังก์ชัน โปรดจำไว้ว่าบริบทแถวจะไม่ขยายเกินตาราง ถ้าสูตรของคุณจําเป็นต้องอ้างอิงคอลัมน์ในตารางอื่น และความสัมพันธ์ของแบบจําลองที่มีอยู่ระหว่างตาราง ให้ใช้ RELATED
ฟังก์ชันสําหรับความสัมพันธ์ด้านเดียวหรือ RELATEDTABLE
ฟังก์ชันสําหรับความสัมพันธ์แบบหลายด้าน
การสรุปเกรนที่สูงขึ้น
ตัวอย่างต่อไปนี้พิจารณาความต้องการในการรายงานรายได้เฉลี่ย เพิ่มหน่วยวัดต่อไปนี้:
Revenue Avg =
AVERAGEX(
Sales,
Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)
จัดรูปแบบหน่วยวัดรายได้เฉลี่ย เป็นสกุลเงินที่มีจุดทศนิยมสองจุด จากนั้นเพิ่มลงในภาพตาราง
โปรดพิจารณาว่าค่าเฉลี่ยหมายถึงผลรวมของค่าที่หารด้วยจำนวนของค่า อย่างไรก็ตาม ทฤษฎีจะยกคำถามนี้มา: จำนวนค่าที่แสดงคืออะไร ในกรณีนี้ จำนวนค่าคือจำนวนของนิพจน์ที่ไม่ได้ประเมินเป็น BLANK นอกจากนี้ เนื่องจากฟังก์ชันตัวทําซ้ําที่ระบุแถวตาราง ยอดขาย ค่าเฉลี่ยอาจหมายถึง รายได้ต่อแถว ยกระดับตรรกะนี้ไปอีกขั้น เนื่องจากแต่ละแถวในตารางยอดขายจะบันทึกเป็นบรรทัดตามลําดับยอดขาย ซึ่งสามารถอธิบายได้ชัดเจนเป็นรายได้ต่อบรรทัดตามลําดับ
อย่างไรก็ตาม คุณควรเปลี่ยนชื่อหน่วยวัดรายได้เฉลี่ยเป็นรายได้จากบรรทัดตามลำดับโดยเฉลี่ย เพื่อให้สามารถรายงานผู้ใช้เกี่ยวกับสิ่งที่ถูกใช้เป็นฐานโดยเฉลี่ยได้
ตัวอย่างต่อไปนี้ใช้ฟังก์ชันตัวทำซ้ำเพื่อสร้างหน่วยวัดใหม่ที่ทำให้เกิดส่วนประกอบในระดับลำดับยอดขาย (ลำดับยอดขายประกอบด้วยหนึ่งบรรทัดตามลำดับเป็นอย่างน้อย) เพิ่มหน่วยวัดต่อไปนี้:
Revenue Avg Order =
AVERAGEX(
VALUES('Sales Order'[Sales Order]),
[Revenue]
)
จัดรูปแบบหน่วยวัดลำดับรายได้เฉลี่ย เป็นสกุลเงินด้วยตำแหน่งทศนิยมสองจุดจากนั้นเพิ่มไปยังภาพตาราง
ตามที่คาดหวัง รายได้เฉลี่ยสำหรับการสั่งซื้อมักจะสูงกว่ารายได้เฉลี่ยสำหรับบรรทัดตามลำดับเดียว
โปรดสังเกตว่าสูตรใช้ VALUES
ฟังก์ชัน DAX ฟังก์ชันนี้ช่วยให้สูตรของคุณกำหนดได้ว่าค่าใดบ้างที่อยู่ในบริบทตัวกรอง ในกรณีนี้ ฟังก์ชันจะAVERAGEX
ทําซ้ําแต่ละลําดับยอดขายในบริบทตัวกรอง หรืออีกนัยหนึ่งคือ จะทำซ้ำแต่ละลำดับยอดขายสำหรับเดือนนั้นๆ บริบทตัวกรองและ VALUES
ฟังก์ชันจะถูกนําไปใช้ในโมดูลบริบทตัวกรอง