top of page
3. Dax Formula Concepts
DAX Formula ဆိုင်ရာ အခြေခံအချက်အလက်များ
ဤစာမျက်နှာတွင်ပါဝင်သည့် ခေါင်းစဉ်များ

DAX ဆိုသည် Data Analysis Expression ၏ အတိုကောက် စကားလုံး ဖြစ်ပြီး POWER BI, SQL Server Analysis Services (SSAS) နှင့် Power Pivot တို့တွင် အသုံးပြုသည့် Programming Language ဖြစ်သည်။ DAX ကို အသုံးပြု၍ သာမန် Pivot Table တွင် မပြုလုပ်နိုင်သည့် ရှုပ်ထွေးသည့် Raw Data များကို ပိုမိုပြည့်စုံသည့် Analysis Result များရရှိရန် အသုံးပြုနိုင်သည်။ ထို့အပြင် Database တစ်ခုမှ ဒေတာများကို Analzye ပြုလုပ်ထားသည့် Result များနှင့်အတူ Table အဖြစ် ပြန်လည်ထုတ်ယူပေးနိုင်သည့် Query အဖြစ်လဲ အသုံးပြုနိုင်သည်။

Programming Language ဟု ဆိုသော်လည်း အခြား Programming Language များကဲ့ သို့ Looping, Statement ကဲ့သို့သော Concept များမပါဝင်ပါ။ Excel Formula များနှင့် ဆင်တူသည့် Expression Language ဖြစ်ပါသည်။  

ရေးသားဟန်မှာ Excel နှင့် ဆင်တူသည့်အတွက် အခြေခံ Formula  သဘောတရားများ စတင်လေ့လာ ရာတွင် လွယ်ကူမည် ဖြစ်သော်လည်း လက်တွေ့ပြသနာများ ဖြေရှင်းနိုင်ရန်အတွက် Advanced Concept သဘောတရားများ လေ့လာရာတွင်တော့ အချိန်ပေးပြီး စိတ်ရှည်စွာ လေ့လာကြ ရမည် ဖြစ်ပါ သည်။ Excel တွင် Formula များ ရေးသားရန် Cell Reference များကို အသုံးပြုရေးသား ရသော်လည်း DAX တွင် Table Column အမည်များကို အသုံးပြုရေးသားရမည်ဖြစ်သည်။ အောက်ပါ Table တွင် Qty Column နှင့် Price Column ကို မြှောက်ထားခြင်းဖြစ်ပြီး သက်ဆိုင်ရာ Row အသီးသီး၏ တန်ဖိုးများ လိုက်ပါတွက်ချက်ပေးမည်ဖြစ်ပါသည်။

Excel တွင် မည်သည့် အခြား Concept ၊ Theoretical Background များ သိရှိရန်မလိုအပ်ပဲ Formula တစ်ခုကို ( ဥပမာ VLOOKUP, SUMIF ) တိုက်ရိုက်လေ့လာရန် ဖြစ်နိုင်သော်လည်း DAX Language ကို လေ့လာရာတွင် အခြေခံ သဘောတရားများကို နားလည်မှုမရှိပဲ Formula တစ်ခုကို တိုက်ရိုက်လေ့လာရန် မဖြစ်နိုင်ပါ။ ထို့အတွက် Theoretical Background များကို ကြေညက်စွာ လေ့လာကြရမည် ဖြစ်သည်။

ပုံမှန်အားဖြင့် Table Name   နှင့် Column Name များကို Reference ယူ ရေးသားရာတွင် Table Name ၏ နောက်တွင် Column Name အား Square Bracket  [  ] ဖြင့် ရေးသားလေ့ရှိသည်။

TableName[ColumnName]

သို့ရာတွင် Table အမည်သည် ကိန်းဂဏန်းနှင့်စလျင် ( သို့မဟုတ် ) Table အမည်တွင် Space ပါလျင် (သို့မဟုတ်) Table အမည်သည် DATE, SUM, COUNT စသည့် Reserved Keyword များဖြစ်နေလျင် Table အမည်ကို ရေးသားရာတွင် Single Quote အဖွင့်အပိတ်ဖြင့် ရေးသားရသည်။

‘Yangon Sale’[Qty]

‘2015Sale’[Qty]

‘Date’[Year]

Excel တွင် Blank တန်ဖိုး ရရှိရန် Double Quote ဖြင့် ရေးသားအသုံးပြုလေ့ရှိသော်လည်း DAX တွင် Blank တန်ဖိုးရရှိရန် BLANK()  Formula ကို ရေးသားအသုံးပြုရမည်ဖြစ်သည်။

Data Type & Formula တွင် ဖော်ပြခဲ့သည့်အတိုင်း Formula တစ်ခုမှ ရရှိလာနိုင်သည့် အဖြေများသည် Data Type တစ်မျိုးတည်းသာ ဖြစ်ရမည် ဖြစ်ရာ အောက်ပါအတိုင်း ရေးသားလျင် Error ရရှိမည်ဖြစ်ပါသည်။

=IF( [Qty] >=50, 0.1, "" )

ရေးသားသည့် ရည်ရွယ်ချက်မှာ Qty သည် 50 နှင့်အထက်ဖြစ်လျင် 0.1 ဟုပေါ်စေပြီး 50 အောက်ဆိုလျင် Blank ပေါ်စေလိုခြင်း ဖြစ်သည်။ သို့ရာတွင် "" ဟု ရေးသားခြင်းမှာ စာသား ဖြစ်နေသဖြင့် အဖြေမထွက်ခြင်း ဖြစ်ပါသည်။

ထို့အတွက် အောက်ပါအတိုင်း ပြောင်းလဲ ရေးသားရမည် ဖြစ်သည်။

=IF( [Qty] >=50, 0.1, BLANK() )

 Blank တန်ဖိုးနှင့် တွဲဖက် တွက်ချက်မှုများပြုလုပ်သည့်အခါ ရရှိလာနိုင်သည့် ရလဒ်အချို့အား အောက်တွင် ဖော်ပြထားပါသည်။

BLANK ( ) + 25    = 25

 BLANK ( ) - 25    = -25

25 / BLANK ( ) = Infinity

25 / BLANK ( ) = Nan

BLANK ( ) / 25 = BLANK ( )

25 * BLANK ( ) = BLANK ( )

BLANK ( ) / BLANK ( ) = BLANK ( )

BLANK ( ) || BLANK ( )  = FALSE

BLANK ( ) &&  BLANK ( )  = FALSE

FALSE  &&  BLANK ( )  = FALSE

FALSE  ||  BLANK ( )  = FALSE

TRUE  ||  BLANK ( )  = TRUE

TRUE  &&  BLANK ( )  = FALSE

DAX ကို လေ့လာရာတွင် Calculated Column နှင့် Calculated Field နှစ်ခု၏ ကွဲပြားစွာ အလုပ်လုပ်ပုံနှင့် အသုံးဝင်ပုံကို နားလည်ရန် အရေးကြီး ပါသည်။

​Calculated Column

Calculated Column ဆိုသည်မှာ Formula ဖြင့် ရေးသားတွက်ချက်ထားသည့် Result များ သိုလှောင်ထားသည် Column တစ်ခုဖြစ်သည်။ Calculated Column ကို Power Pivot Window အတွင်းရှိ Data Table များတွင် ရေသားရမည် ဖြစ်ပါသည်။ အောက်ပါဥပမာတွင် Quantity Column အပေါ်မူတည်၍ Whole Sale နှင့် Retail ခွဲခြားရန် အတွက် Type ဟု အမည်ပေးထားသည့် Calculated Column တစ်ခု ထည့်သွင်းထားခြင်း ဖြစ်သည်။

ဆက်လက်လေ့လာရမည့် သင်ခန်းစာ
3.1 Data Types
image3.png

DAX Formula Language တွင် အောက်ပါ Data အမျိုးအစားများ အသုံးပြုနိုင်သည် -

  • Whole Number (Integer)

  • Decimal Number (Float)

  • Currency (Currency)

  • Date (Date/Time)

  • Boolean (TRUE/FALSE)

  • Text (String)

  • Binary large object (BLOB)

3.1 အသုံးပြုနိုင်သည့် Data အမျိုးအစားများ

DAX Formula ရေးသားရာတွင် Column Reference ကို အသုံးပြုရေးသားရခြင်း ဖြစ်သဖြင့် Data Type များသည်လည်း Column တစ်ခုလုံး အတွက် တစ်မျိုးသား သတ်မှတ်နိုင်မည် ဖြစ်သည်။ Excel တွင် Column တစ်ခုအတွင်း ပထမ တန်ဖိုး သည် ကိန်းဂဏန်းဖြစ်ပြီး ဒုတိယတန်ဖိုးသည် စာသား ဖြစ်ခွင့်ရှိသော်လည်း DAX တွင် Column တစ်ခုလုံးတွင် Data Type တစ်မျိုးသား လက်ခံသည်။

ထို့ကြောင့် အောက်ပါ Formula ရေးသားလျင် DAX တွင် Error ရရှိမည် ဖြစ်သည်။

            =IF( [Qty] >=50, 0.1, “-” )

အဘယ်ကြောင့်ဆိုသော် Formula တစ်ခုမှ ပြန်လည်ရရှိနိုင်သည့် အဖြေအမျိုးအစားများသည် Data Type တစ်ခုတည်းသာ ဖြစ်ရမည် ဖြစ်ရာ 0.1 နှင့် - မှာ Data Type မတူညီသော်ကြောင့် ဖြစ်သည်။

=IF( [Qty] >=50, 0.1, 0 ) ဟုရေးသားလျင်တော့ အဖြေမှန် ပြန်လည်ရရှိနိုင်မည် ဖြစ်ပါသည်။

3.2 အသုံးပြုနိုင်သည့်  Operator အမျိုးအစားများ

basic concept of dax-1.jpg

3.3 Table နှင့် Column Name များကို ညွှန်းဆိုရေးသားခြင်း

3.4 BLANK တန်ဖိုးများ အသုံးပြုခြင်း

3.5 Calculated Column & Calculated Field ( Measure ) များ ရေးသားခြင်း

Calculated Column နှင့်ပတ်သက်၍ အဓိက မှတ်သားရမည့် အချက်များမှာ −

  • Calculated Column သည် Data Table အတွင်းရှိ အခြား Column များကဲ့သို့ Column တစ်ခုသာ ဖြစ်သည့်အတွက် Excel File ၏ Memory တွင် သိမ်းဆည်မည် ဖြစ်ပါသည်။

  • Calculated Column တွင် ရေးသားထားသည့် Formula သည် Data Refresh လုပ်သည့်အခါတွင် နောက်တစ်ကြိမ် ပြန်လည် တွက်ချက်မည်ဖြစ်ပါသည်။ သို့ဖြစ်၍ Calculated Column များစွာ အသုံးပြုထည့်သွင်းထားလျင် Refresh လုပ်သည့်အခါ အနည်းငယ် ပို၍ ကြာမြင့်နိုင်သည်။

  • Calculated Column သည် များသောအားဖြင့် Row Context ကို အသုံးပြု၍ တွက်ချက်မည် ဖြစ်သည်။

  • Calculated Column မှ ရရှိသည့် တန်ဖိုးများကို Pivot Table ၏ Row Area, Column Area, Filter Area, Slicer စသည်တို့တွင် ထည့်သွင်း အသုံးပြုလေ့ရှိသည်။ အထူးသဖြင့် Filter Functionအတွက် အသုံးပြုလေ့ရှိသည်။

Calculated Field ( Measure )

Calculated Field ကို Measure ဟုလည်း ခေါ်ဝေါ်လေ့ရှိသည်။ Calculated Field သည် တွက်ချက်မှု ရလဒ်တစ်ခု အဖြေထုတ်ပေးသည့် Formula ဖြစ်ပါသည်။ Calculated Field ကို Power Pivot Window ရှိ Calculation Area ( Table အောက်တွင်ရှိသည့် Cell ကွက်များ ) တွင် လည်းကောင်း၊ Excel Window ရှိ Power Pivot tab အောက်မှ New Measure ကို အသုံးပြု၍သော်လည်းကောင်း ရေးသားနိုင်သည်။ အောက်ပါ ဥပမာတွင် စုစုပေါင်း ရောင်းရသည့် အရေအတွက်ရရှိရန် Calculated Field Formula  ကို Power Pivot Window ရှိ Calculation Area ကို အသုံးပြု ရေးသားထားခြင်း ဖြစ်သည်။

Calculated Field နှင့်ပတ်သက်၍ အဓိက မှတ်သားရမည့် အချက်များမှာ

  • Calculated Filed ကို Row တစ်ခုခြင်း တွက်ချက်မှုမဟုတ်ပဲ တန်ဖိုးအားလုံးအပေါ် စုပေါင်းတွက်ချက်လိုသည့်အခါ အသုံးပြုသည်။

  • Calculated Field တွက်ချက်မှုမှ ရရှိလာသည့် တန်ဖိုးကို Pivot Table တွင် Value Area ၌ အသုံးပြုသည်။

  • Calculated Filed Formula ကို Pivot Table တွင် Filter ပြောင်းလဲသည့်အခါတိုင်း ( Rows Area, Column Area, Filter Area , Slicer စသည်တို့တွင် ပြောင်းလဲသည့်အခါတိုင်း ) Update ပြုလုပ် တွက်ချက်သည်။

အောက်ပါ ဥပမာတွင် Calculated Column  Formula အား Pivot Table ၏ Rows Area တွင် အသုံးပြုထားပြီး Calculated Filed Formula အား Values Area  တွင် ထည့်သွင်းအသုံးပြု ထားသည်။

image4.png
image5.png
image6.png
3.2 Operators
3.3 Table and Column Names
3.4 Blank
3.5 Calculated Columns and Measures

Calculation Area

အထက်ပါ Formula ကိုပဲ Power Pivot Window တွင် မရေးပဲ Excel Window တွင် ရေးသားလိုပါက Excel Window ၏ Power Pivot tab အောက်ရှိ Measure > New Measure ကို ကလစ်ပါ။

Measure 2.PNG
Measure 1.PNG

ထိုအခါ Calculated Field ( Measure ) ရေးရန် Box ပေါ်လာပါမည်။ Table Name တွင် မိမိထည့်သွင်း ရေးသားလိုသည့် Table အမည်၊ Measure Name နေရာတွင် Formula အမည်များကို ရေးသား၍ Formula Box တွင် Formula ကို ရေးသားရမည် ဖြစ်ပါသည်။

3.6 Additive, Non-Additive & Semi Additive Measure

3.6 Additive Measures

Data Column ရှိ စုစုပေါင်းတွက်ချက်မှုသည် သက်ဆိုင်ရာ Item တစ်ခုချင်းစီ၏ တန်ဖိုးစုစုပေါင်း  တွက်ချက် မှုနှင့် ညီလျင် Additive Measure ဟုခေါ်ဆိုသည်။  Additive Measure သည် ပုံမှန် အသုံးပြုနေကျ SUM Formula သဘောတရားသာဖြစ်သည်။ ဥပမာ တစ်နှစ်လုံး စုစုပေါင်း တန်ဖိုးသည် တစ်လချင်း စုစုပေါင်း တန်ဖိုးများ ပေါင်းလဒ်နှင့် ညီသည့် သဘောတရားကို ဆိုလိုသည်။

Data Column ရှိ စုပေါင်းတွက်ချက်မှုသည် သက်ဆိုင်ရာ Item တစ်ခုချင်းစီ၏ စုပေါင်း တွက်ချက်မှု တန်ဖိုးနှင့် မတူညီလျင် Non-Additive Measure ဟု ခေါ်ဆိုသည်။ ဥပမာ တစ်နှစ်လုံးတွင် ရောင်းရသည့် အမျိုးအစား အရေအတွက် စုစုပေါင်းသည် တစ်လချင်းစီ ရောင်းရသည့် အမျိုးအစား အရေအတွက် စုစုပေါင်း၏ ပေါင်းလဒ်နှင့် တူညီမည် မဟုတ်ပေ။ ဇန်နဝါရီလတွင် A, B, C ၊   ဖေဖော်ဝါရီ လတွင် B, C, D  ရောင်းရသည် ဆိုပါစို့။ နှစ်လပေါင်း စုစုပေါင်း ရောင်းရသည် အမျိုးအစား အရေ အတွက်မှာ (၄) မျိုး ( A, B, C, D ) သာ ဖြစ်သည်။ တစ်လချင်းစီ ရောင်းသည့် အမျိုးစားအရေအတွက် မှာ ( ၃ ) မျိုးစီဖြစ်သည့်အတွက် နှစ်လပေါင်း ရောင်းသည့် အမျိုးအစား အရေအတွက် စုစုပေါင်းကို ( ၆ ) မျိုးဟု သတ်မှတ် တွက်ချက်မရပါ။ ဤသို့တွက်ချက်မှုမျိုးကို Non-Additive Measure ဟု ခေါ်ဆိုသည်။

အခြား Data အမျိုးအစားအပေါ်မူတည်တွက်ချက်လျင် Additive Measure သဘောတရားဖြင့် တွက်ချက်ပြီး အချိန်နှင့်ပတ်သက်လျင် Non-Additive Measure သဘောတရားဖြင့်တွက်ချက်သည့် Formula များကို Semi-Additive Measure ဟု ခေါ်ဆိုသည်။ DAX တွင် Month-to-Date, Quarter-to-Date, Year-to-Date Formula များသည် Semi-Additive Measure များဖြစ်သည်။ ဥပမာ Year-to-Date ဖြင့် တွက်ချက် ထားသည့် လအလိုက်တန်ဖိုးများတွင် တစ်လချင်းစီတွင် ရရှိသည့် တန်ဖိုးများသည် ထို လတစ်လ အတွက် စုစုပေါင်း တန်ဖိုးသာမဟုတ်ပဲ Jan 1 ရက်မှ စပြီး ရောက်ရှိနေသည့် လအထိ စုစုပေါင်း တန်ဖိုးကို တွက်ချက်ထားခြင်း ဖြစ်သည်။

အောက်ပါ ဥပမာတွင် Measure Type သုံးမျိုးကို အသုံးပြုဖော်ပြထားသည်။

image7.png
bottom of page