วันนี้จะมาแชร์วิธีการสร้าง Table Date Dimension ไว้ใช้งานใน Power BI Dashboard ซึ่งเราสามารถเขียนมันขึ้นมาด้วยภาษาที่เรียกว่า DAX (Data Analysis Expression) เดี่ยวมาลองทำกันเลยครับ
ขั้นตอนที่ 1 : ไปที่ Tab “Modeling” –> “New Table”
ขั้นตอนที่ 2 : สร้าง table dim_date จาก function “CALENDAR”  ตาม Script นะครับ ผมจะนำ Date ที่มีอยู่ Table Fact ของเรามาใช้ในการสร้างเพื่อให้ได้ช่วง StartDate ถึง EndDate ตามข้อมูลที่เรามีจริงๆ พิมพ์ Script ตามรายละเอียดด้านล่างเลยนะครับ
dim_date = CALENDAR(MINX(fact_financials,fact_financials[Date]), MAXX(fact_financials,fact_financials[Date]))


ขั้นตอนที่ 3 : ทำการ New Column ภายใต้ dim_date ผมคิดว่าฟิลล์ที่เราจำเป็นต้องใช้บ่อย ผมสรุปมาให้ประมาณนี้นะครับ ตามตาราง
Day   =   FORMAT(dim_date[Date], “dddd”)
Short Day   =   FORMAT(dim_date[Date], “ddd”)
Week   =   WEEKNUM(dim_date[Date])
MonthNumber   =   MONTH(dim_date[Date])
Month   =   FORMAT(dim_date[Date], “MMMM”)
Short Month   =   FORMAT(dim_date[Date], “MMM”)
Quarter   =   “Q” & ROUNDUP(MONTH(dim_date[Date])/3,0)
Short Month Year   =   FORMAT(dim_date[Date],“mmm’ yy”)
Year   =   YEAR(dim_date[Date])

เมื่อเราสร้างครบทุก Column จะได้รายละเอียดดังรูปนะครับ

ขั้นตอนที่ 4 : หลังจากที่เราได้ dim_date แล้วเราก็จะมาสร้าง Relationship กับ Table fact_financials จะได้ความสัมพันธ์แบบ 1 : *  รายละเอียดดังรูปครับ

ขั้นตอนที่ 5 : เราลองมาประยุกต์ใช้งาน dim_date กันดูครับ จากรูปผมลองลาก Stacked Column Chart แล้วลาก 3 measurement มาวางใน value ได้แก่ Sales, Profits, COGS จากนั้นในช่อง Axis ผมลาก Short Month Year มาวางทำให้เรากราฟของเราเป็นในลักษณะ Time Series แต่กราฟที่ได้ยังไม่ถูกใจผมเพราะเดือนของเรายังเรียงลำดับไม่ถูกต้อง เราต้องจัดการต่อไปครับ 

ขั้นตอนที่ 6 : เรามาที่ Tab Data ตามหมายเลข 1 แล้วเลือก Column “Short Month Year” ตามหมายเลข 2 จากนั้นไปที่ Sort By Column ให้เลือก Sort ตาม Column “End Of Month”

สุดท้ายมาดูที่กราฟของเราจะเห็น “Short Month Year” ของเราถูก Sort ได้ถูกต้องแล้วนะครับผม นอกจากนี้เราก็สามารถนำ dim_date ที่เราสร้างไว้ไปประยุกต์ใช้ได้ทั้ง Project ของเราเลยนะครับ


Source Code : Power BI Table DateDimension

TG Facebook Comments