Section 1: Lab: Variable, Iterator และการทดสอบด้วย DAX query view
- DAX query view (EVALUATE, DEFINE MEASURE) และ TMDL view สำหรับตรวจและแก้โมเดล
- VAR และ RETURN ช่วยให้สูตรอ่านง่าย คำนวณครั้งเดียว และ Debug ได้
- SUMX, AVERAGEX และ MAXX ทำงานทีละแถว และผลของ Iterator ซ้อนกันต่อความเร็ว
- RANKX และ CONCATENATEX สำหรับจัดอันดับและตรวจค่าภายในสูตร
- Lab: Measure กำไรและอันดับสินค้า ตรวจผลด้วย Query ก่อนนำไปใช้ใน Visual
Section 2: Lab: Row Context, Filter Context และ Relationship
- Row Context เกิดขึ้นที่ไหน และทำไมจึงไม่กรองข้อมูลเอง
- Filter Context มาจาก Slicer, แถวและคอลัมน์ของ Visual และ Filter Pane
- RELATED, RELATEDTABLE และการไหลของตัวกรองผ่าน Relationship
- Cross Filter Direction แบบสองทางและความเสี่ยงที่ตามมา
- Lab: ไล่หาสาเหตุที่ยอดรวมไม่เท่ากับผลรวมของแต่ละแถว
Section 3: Lab: CALCULATE ขั้นลึกและ Context Transition
- ลำดับการทำงานของ CALCULATE และการแทนที่ตัวกรองเดิม
- KEEPFILTERS, REMOVEFILTERS, ALL, ALLEXCEPT และ ALLSELECTED
- Context Transition ใน Calculated Column และใน Iterator
- การอ้าง Measure ภายใน Iterator ซึ่งถูกครอบด้วย CALCULATE โดยอัตโนมัติ
- Lab: ส่วนแบ่งยอดขายที่ถูกต้องเมื่อผู้ใช้เลือกหลายตัวกรองพร้อมกัน
Section 4: Lab: Table Function และตารางเสมือนใน Measure
- FILTER เทียบกับเงื่อนไขแบบ Boolean ใน CALCULATE
- VALUES, DISTINCT, SUMMARIZECOLUMNS, ADDCOLUMNS และ SELECTCOLUMNS
- TOPN และการสร้างตารางเสมือนเพื่อคำนวณต่อใน Measure
- ตรวจผลตารางเสมือนด้วย DAX query view ก่อนนำไปใช้
- Lab: ยอดขายของลูกค้า Top 10 เทียบกับกลุ่มที่เหลือ
Section 5: Lab: ความสัมพันธ์ขั้นสูง
- Role-playing Date และ USERELATIONSHIP กับ Relationship ที่ไม่ Active
- CROSSFILTER สำหรับเปลี่ยนทิศทางการกรองเฉพาะใน Measure
- TREATAS สร้างความสัมพันธ์เสมือนระหว่างตารางคนละระดับ
- Many-to-many และ Bridge Table ใช้อย่างไรให้ตัวเลขไม่ผิด
- Lab: เทียบยอดขายจริงกับงบประมาณที่เก็บเป็นรายเดือนและรายกลุ่มสินค้า