เขียนสูตร DAX
การคำนวณแบบจำลองแต่ละชนิด ตารางจากการคำนวณ คอลัมน์จากการคำนวณ หรือการวัดผลจะถูกกำหนดโดยชื่อ ตามด้วยสัญลักษณ์เท่ากับ (=) ซึ่งจะตามด้วยสูตร DAX ใช้เทมเพลตต่อไปนี้เพื่อสร้างการคำนวณแบบจำลอง:
<Calculation name> = <DAX formula>
ตัวอย่างเช่น ข้อกําหนดของตารางจากการคํานวณ วันที่จัดส่ง ที่ทําซ้ําข้อมูลตาราง วันที่ คือ:
Ship Date = 'Date'
สูตร DAX ประกอบด้วยนิพจน์ที่ส่งคืนผลลัพธ์ ผลลัพธ์เป็นออบเจ็กต์ตารางหรือค่าสเกลา สูตรตารางจากการคํานวณต้องส่งคืนวัตถุตาราง คอลัมน์จากการคํานวณและสูตรการวัดผลต้องส่งคืนค่าสเกลา (ค่าเดียว)
สูตรประกอบด้วยการใช้:
- ฟังก์ชัน DAX
- ตัวดำเนินการ DAX
- การอ้างอิงถึงออบเจ็กต์แบบจำลอง
- ค่าคงที่ เช่น ตัวเลข 24 หรือข้อความสัญพจน์ "FY" (ตัวย่อสําหรับปีบัญชี)
- ตัวแปร DAX
- ช่องว่าง
เคล็ดลับ
เมื่อใส่สูตร DAX ใน Power BI Desktop คุณจะได้รับประโยชน์จาก IntelliSense IntelliSense คือเครื่องมือช่วยในการดำเนินการรหัสที่แสดงรายการฟังก์ชันและทรัพยากรแบบจำลอง นอกจากนี้ เมื่อคุณเลือกฟังก์ชัน DAX จะมีข้อกำหนดและคำอธิบายให้กับคุณ เราขอแนะนำให้คุณใช้ IntelliSense เพื่อช่วยสร้างสูตรที่ถูกต้องได้อย่างรวดเร็ว
ฟังก์ชัน DAX
DAX คือภาษาที่ใช้งานได้คล้ายกับ Microsoft Excel ซึ่งหมายความว่า สูตรจะอาศัยฟังก์ชันเพื่อบรรลุเป้าหมายที่เจาะจง โดยทั่วไปแล้ว ฟังก์ชัน DAX จะมีอาร์กิวเมนต์ที่อนุญาตให้ส่งผ่านตัวแปรได้ สูตรสามารถใช้การเรียกฟังก์ชันจำนวนมาก และมักจะซ้อนฟังก์ชันภายในฟังก์ชันอื่นๆ
ในสูตร ชื่อฟังก์ชันต้องตามด้วยวงเล็บ ภายในวงเล็บ ตัวแปรจะถูกส่งผ่าน
หมายเหตุ
บางฟังก์ชันจะไม่ได้ใช้อาร์กิวเมนต์ หรืออาร์กิวเมนต์อาจเป็นทางเลือก
จะมีการอธิบายการทำงานกับฟังก์ชัน DAX ในภายหลังในมอดูลนี้
ตัวดำเนินการ DAX
สูตรยังขึ้นอยู่กับตัวดําเนินการ ซึ่งสามารถทําการคํานวณทางคณิตศาสตร์ เปรียบเทียบค่า ทํางานกับสตริง หรือทดสอบเงื่อนไขได้
จะมีการอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับตัวดำเนินการ DAX ในภายหลังในมอดูลนี้
การอ้างอิงถึงออบเจ็กต์แบบจำลอง
สูตรสามารถอ้างอิงถึงออบเจ็กต์แบบจำลองสามชนิดเท่านั้น ได้แก่ ตาราง คอลัมน์ หรือการวัดผล สูตรไม่สามารถอ้างอิงถึงลำดับชั้นหรือระดับลำดับชั้น (โปรดจำไว้ว่าระดับลำดับชั้นจะขึ้นอยู่กับคอลัมน์ ดังนั้นสูตรของคุณสามารถอ้างอิงถึงคอลัมน์ของระดับลำดับชั้นได้)
การอ้างอิงตาราง
เมื่อคุณอ้างอิงตารางในสูตรอย่างเป็นทางการ ชื่อตารางจะอยู่ในอัญประกาศเดี่ยว ในข้อกําหนดตารางจากการคํานวณต่อไปนี้ ให้สังเกตว่าตาราง วันที่ อยู่ในอัญประกาศเดี่ยว
Ship Date = 'Date'
อย่างไรก็ตาม อัญประกาศเดี่ยวสามารถเว้นไว้ได้เมื่อเงื่อนไขทั้งสองต่อไปนี้เป็นจริง:
- ชื่อตารางไม่มีช่องว่างที่ฝังตัว
- ชื่อตารางไม่ใช่คําสงวนที่ใช้โดย DAX ชื่อฟังก์ชัน DAX และตัวดำเนินการทั้งหมดเป็นคำสงวน วันที่ เป็นชื่อฟังก์ชัน DAX ซึ่งจะอธิบายสาเหตุเมื่อคุณอ้างอิงตารางที่มีชื่อว่า วันที่ ซึ่งคุณต้องใส่ไว้ภายในอัญประกาศเดี่ยว
ในข้อกําหนดตารางจากการคํานวณต่อไปนี้ สามารถละเว้นเครื่องหมายอัญภาคเดี่ยวเมื่ออ้างอิงตาราง สนามบิน :
Arrival Airport = Airport
การอ้างอิงคอลัมน์
เมื่อคุณอ้างอิงคอลัมน์ในสูตร ชื่อคอลัมน์ต้องอยู่ในวงเล็บสี่เหลี่ยม หรืออาจวางชื่อตารางนำหน้าได้ ตัวอย่าง ข้อกำหนดการวัดผลต่อไปนี้อ้างอิงถึงคอลัมน์ยอดขาย
Revenue = SUM([Sales Amount])
คุณสามารถแยกแยะการอ้างอิงคอลัมน์ได้โดยนำหน้าด้วยชื่อตาราง เนื่องจากชื่อคอลัมน์นั้นไม่ซ้ำกันภายในตาราง แต่ไม่จำเป็นต้องไม่ซ้ำกันภายในแบบจำลอง คอลัมน์ที่แยกแยะแล้วจะเรียกว่าคอลัมน์ที่มีคุณสมบัติสมบูรณ์ ฟังก์ชัน DAX บางอย่างจำเป็นต้องส่งผ่านในคอลัมน์ที่มีคุณสมบัติสมบูรณ์
เคล็ดลับ
หากต้องการปรับปรุงความยากง่ายในการอ่านสูตรของคุณ เราขอแนะนำให้คุณวางชื่อตารางนำหน้าการอ้างอิงคอลัมน์เสมอ
จากตัวอย่างก่อนหน้านี้ ข้อกำหนดการวัดผลสามารถเขียนใหม่ได้เป็น:
Revenue = SUM(Sales[Sales Amount])
การอ้างอิงการวัดผล
เมื่อคุณอ้างอิงหน่วยวัดในสูตร เช่น การอ้างอิงชื่อคอลัมน์ ชื่อหน่วยวัดต้องอยู่ในวงเล็บสี่เหลี่ยม ตัวอย่าง ข้อกำหนดการวัดผลต่อไปนี้อ้างอิงถึงการวัดผลรายได้และต้นทุน
Profit = [Revenue] - [Cost]
หากคุณเป็นผู้เริ่มต้น DAX ข้อเท็จจริงที่ว่าการอ้างอิงคอลัมน์และการวัดผลจะอยู่ในวงเล็บสี่เหลี่ยมเสมออาจทําให้เกิดความสับสนเมื่อคุณพยายามอ่านสูตร อย่างไรก็ตาม เมื่อคุณเชี่ยวชาญกับพื้นฐาน DAX แล้ว คุณจะสามารถกําหนดชนิดของออบเจ็กต์ได้ เนื่องจากในสูตร DAX คอลัมน์ และการวัดผลจะถูกใช้ในลักษณะที่แตกต่างกัน
เคล็ดลับ
ซึ่งสามารถวางชื่อตารางนำหน้าการอ้างอิงการวัดผลได้ อย่างไรก็ตาม การวัดผลเป็นออบเจ็กต์ระดับแบบจำลอง ในขณะที่มีการกำหนดไปยังตารางหลัก แต่ก็เป็นเพียงความสัมพันธ์เชิงความงามเท่านั้นในการจัดระเบียบการวัดผลตามตรรกะในบานหน้าต่างเขตข้อมูล
ดังนั้น ในขณะที่เราแนะนำว่าคุณวางชื่อตารางนำหน้าการอ้างอิงคอลัมน์เสมอ ตัวผกผันจะเป็นจริงสำหรับการวัดผล: เราขอแนะนำว่าอย่าวางชื่อตารางนำหน้าการอ้างอิงการวัดผล
โปรดดูการอ้างอิงคอลัมน์และการวัดผลสำหรับข้อมูลเพิ่มเติม
ตัวแปร DAX
สูตรสามารถตรวจนับตัวแปร DAX เพื่อจัดเก็บผลลัพธ์ได้
จะมีการอธิบายวิธีการและเวลาในการใช้ตัวแปร DAX ในภายหลังในมอดูลนี้
ช่องว่าง
ช่องว่างจะอ้างอิงถึงอักขระที่คุณสามารถใช้เพื่อจัดรูปแบบสูตรของคุณในลักษณะที่ง่ายและรวดเร็วในการทำความเข้าใจ อักขระช่องว่างประกอบด้วย:
- ช่องว่าง
- แท็บ
- อักขระขึ้นบรรทัดใหม่
ช่องว่างเป็นทางเลือก และจะไม่ปรับเปลี่ยนตรรกะสูตรของคุณหรือส่งผลเสียต่อประสิทธิภาพ เราขอแนะนำให้คุณใช้สไตล์การจัดรูปแบบและนำไปใช้อย่างสม่ำเสมอ และพิจารณาคำแนะนำต่อไปนี้:
- ใช้ช่องว่างระหว่างตัวดำเนินการ
- ใช้แท็บเพื่อเยื้องเข้าการเรียกฟังก์ชันที่ซ้อนกัน
- ใช้อักขระขึ้นบรรทัดใหม่เพื่อแยกอาร์กิวเมนต์ฟังก์ชัน โดยเฉพาะอย่างยิ่งเมื่อมีความยาวเกินกว่าจะอยู่ในบรรทัดเดียว การจัดรูปแบบในลักษณะนี้จะช่วยให้มีการแก้ไขปัญหาง่ายขึ้น โดยเฉพาะอย่างยิ่งเมื่อสูตรไม่มีวงเล็บ
- ข้อผิดพลาดที่ด้านข้างของช่องว่างมากเกินกว่าน้อยเกินไป
เคล็ดลับ
ในแถบสูตร เมื่อต้องการใส่อักขระขึ้นบรรทัดใหม่ ให้กด Shift+Enter การกด Enter เพียงอย่างเดียวจะเป็นการยอมรับสูตรของคุณ
พิจารณาข้อกำหนดการวัดผลต่อไปนี้ที่เขียนในบรรทัดเดียวและที่มีการเรียกฟังก์ชัน DAX ห้ารายการ:
Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))
ตัวอย่างต่อไปนี้เป็นข้อกำหนดการวัดผลเดียวกันแต่ตอนนี้มีการจัดรูปแบบ ซึ่งช่วยให้ง่ายต่อการอ่านและทำความเข้าใจ:
Revenue YoY % =
DIVIDE(
[Revenue]
- CALCULATE(
[Revenue],
SAMEPERIODLASTYEAR('Date'[Date])
),
CALCULATE(
[Revenue],
SAMEPERIODLASTYEAR('Date'[Date])
)
)
ลองจัดรูปแบบการวัดผลด้วยตัวคุณเอง เปิดไฟล์ Adventure Works DW 2020 M02.pbix Power BI Desktop จากนั้นในบานหน้าต่าง เขตข้อมูล ให้ขยายตาราง การขาย จากนั้นเลือกหน่วยวัด รายได้ปีต่อปี % ในแถบสูตร ให้ใช้แท็บและอักขระขึ้นบรรทัดใหม่เพื่อสร้างผลลัพธ์เดียวกับตัวอย่างก่อนหน้านี้ เมื่อคุณเพิ่มอักขระขึ้นบรรทัดใหม่ โปรดจําไว้ว่าต้องกด Shift+Enter
ข้อกําหนดหน่วยวัดนี้สามารถปรับปรุงความยากง่ายในการอ่านและประสิทธิภาพได้ ซึ่งจะอธิบายในภายหลังในโมดูลนี้
เคล็ดลับ
เครื่องมือการจัดรูปแบบที่ยอดเยี่ยมจากแหล่งข้อมูลอื่นที่สามารถช่วยให้คุณจัดรูปแบบการคำนวณของคุณคือ DAX Formatter เครื่องมือนี้ช่วยให้คุณสามารถวางการคํานวณของคุณและจัดรูปแบบได้ จากนั้นคุณสามารถคัดลอกการคํานวณที่จัดรูปแบบไปยังคลิปบอร์ดและวางกลับไปยัง Power BI Desktop ได้