Section 1: Lab: Data Model ที่ดีเริ่มจากโจทย์ธุรกิจ
- ทำไม Model ที่ดีสำคัญกว่าการเขียน DAX ซับซ้อน ทั้งความถูกต้อง ความเร็ว และการดูแลต่อ
- ระบุ Business Process, Grain และตัวเลขที่ต้องรายงานก่อนนำเข้าข้อมูล
- ใช้ Model View, Properties Pane และ Model Explorer ใน Power BI Desktop
- ปัญหาที่ตามมาจากการนำตารางแบน (Flat Table) ตารางเดียวเข้า Power BI
- Lab: วิเคราะห์ไฟล์รายงานที่ช้าและตัวเลขผิดเพื่อหาต้นเหตุจาก Model
Section 2: Lab: Star Schema, Fact และ Dimension
- แยก Fact Table กับ Dimension Table และเลือก Grain ของ Fact ให้ชัด
- Surrogate Key, Business Key และการจัดการแถวที่ไม่พบข้อมูลอ้างอิง
- ยุบ Snowflake ให้เป็น Star ด้วย Power Query และจุดที่ควรยอม Denormalize
- Fact หลายตารางที่ใช้ Dimension ร่วมกัน (Conformed Dimension)
- Lab: แปลงตารางยอดขายแบนให้เป็น Star Schema
Section 3: Relationship: Cardinality และทิศทาง Filter
- One-to-many, One-to-one และ Many-to-many ทำงานต่างกันอย่างไร
- Single เทียบ Both Direction และความเสี่ยงของเส้นทาง Filter ที่กำกวม
- Inactive Relationship และการเรียกใช้ด้วย USERELATIONSHIP ใน Measure
- CROSSFILTER และ TREATAS สำหรับกรณีที่ไม่มี Relationship ตรง
- Lab: แก้ตัวเลขผิดที่เกิดจาก Relationship ตั้งค่าไม่ถูก
Section 4: Lab: Date Table ที่ใช้ได้ทั้งองค์กร
- ทำไมควรปิด Auto date/time และสร้าง Date Table เอง
- สร้าง Date Table ด้วย Power Query หรือ DAX พร้อมปีงบประมาณและสัปดาห์
- Mark as Date Table, Sort by Column และลำดับชั้นปี ไตรมาส เดือน
- คอลัมน์ช่วยสำหรับวันทำงาน วันหยุด และปี พ.ศ.
- Lab: Date Table ที่รองรับปีงบประมาณและวันหยุดของบริษัท
Section 5: Lab: Role-playing Dimension และ Bridge Table
- วันที่สั่งซื้อ วันที่ส่ง และวันที่ชำระ: ใช้ Inactive Relationship หรือทำ Dimension แยก
- Slowly Changing Dimension Type 1 และ Type 2 ในมุมของรายงาน
- Bridge Table สำหรับ Many-to-many เช่น ลูกค้าอยู่หลายกลุ่ม เทียบกับ Relationship แบบ Many-to-many
- Fact ที่ Grain ต่างกัน เช่น งบประมาณรายเดือนเทียบยอดขายรายวัน
- Lab: เทียบงบประมาณกับยอดขายจริง และยอดตามวันที่สั่งกับวันที่ส่ง