Practical Case Studies on Count of Sales
ဤစာမျက်နှာတွင်ပါဝင်သည့် ခေါင်းစဉ်များ
6.7.1 Quantity 150 နှင့်အထက် ရောင်းရသည့် အကြိမ်အရေအတွက်
Sale Table ၏ Quantity Column ၌ ဝယ်ယူသည့် ပမာဏများ ထည့်သွင်းထားရာ တစ်ခါဝယ်ယူလျင် 150 နှင့်အထက် ဝယ်ယူသည့် အကြိမ် မည်မျှ ရှိသည်ကိုတွက်ချက်လိုခြင်းဖြစ်ပါသည်။ DAX Formula မသုံးပဲ 150 နှင့် ဝယ်ယူသည့် ပမာဏသိရှိလိုလျင် Quantity Column ကို 150 နှင့် အထက်တန်ဖိုးများ ရရှိရန် Filter စစ်ထုတ်၍ ကျန်ရှိသည့် Row များကို ရေတွက်ရမည် ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်နှင့် သဘောတရားချင်းတူညီစွာ DAX Formula ကို အောက်ပါအတိုင်း ရေးသားလိုက်ပါမည် -
Qty >=150 := COUNTROWS(FILTER(Sale,[Quantity] >= 150 ))
COUNTROWS သည် Table တစ်ခုရှိ Row အရေအတွက်ကို ရေးတွက်ပေးမည်ဖြစ်ရာ ရေတွက်ရန် Table အဖြစ် FILTER(Sale,[Quantity] >= 150 ) ဟု သတ်မှတ် ရေးသားလိုက်ခြင်းဖြစ်သည်။ ရေးသားထားသည့် Measure ကို Pivot Table အတွင်း ထည့်သွင်းလိုက်ပါက အောက်ပါအတိုင်း ရရှိဖြစ်မည်ဖြစ်သည် -
6.7.2 Quantity 150 နှင့်အထက် ရန်ကုန်တွင် ရောင်းရသည့် အကြိမ်အရေအတွက်
FILTER Formula၏ Syntax မှာ =FILTER( Table, Boolean Expression ) ဖြစ်ရာFilter စစ်ထုတ်ရန် သတ်မှတ်ချက်အတွက် Boolean Expression တစ်ခုတည်းသာ ရေးသားနိုင်သည် ကို သတိပြုရမည်ဖြစ်သည်။ သို့ဖြစ်ရာ Table ကို သတ်မှတ်ချက်တစ်ခုထက်ပို၍ စစ်ဆေးပြီး Filter စစ်ထုတ် လိုပါက Logical Operator များဖြစ်သည့်AND, OR, &&, ||စသည်တို့ဖြင့် တွဲဖက်အသုံးပြုရမည် ဖြစ်သည်။
ယခုဥပမာတွင် ရန်ကုန်တွင် ၁၅၀ နှင့်အထက် ရောင်းချသည့် အကြိမ်အရေအတွက်ကို တွက်ချက်လိုသည် ဖြစ်ရာ Filter စစ်ထုတ်မည့် သတ်မှတ်ချက်မှာ တစ်ခုထက်ပိုပြီး ထိုသတ်မှတ်ချက် နှစ်ခုလုံးနှင့် ညီမှသာ စစ်ထုတ်မည် ဖြစ်သည့်အတွက် AND ( သို့မဟုတ် ) &&ကို အသုံးပြုတွဲဖက် ရေးသားရမည် ဖြစ်ပါသည်။
Quantity Column မှာ Sale Table အတွင်းရှိသဖြင့်တိုက်ရိုက် Filter စစ်ထုတ်၍ ရသော်လည်း Region Column မှာ Sale Table တွင် မရှိပဲ Customer Table တွင်ရှိခြင်းကြောင့် RELATED Formula သုံး၍ ချိတ်ဆက်ရယူကာ Filter စစ်ထုတ်ရမည် ဖြစ်သည်။
Qty >=150 in YGN := COUNTROWS(FILTER(Sale,[Quantity] >= 150 && RELATED(Customer[Region])="Yangon"))
ရေးသားထားသည့် Formula အား Pivot Table အတွင်းထည့်သွင်းသည့်အခါ အောက်ပါအတိုင်း မြင်တွေ့ ရမည်ဖြစ်သည် -
6.7 သတ်မှတ်ပမာဏနှင့်အထက် ရောင်းရသည့် အကြိမ်အရေတွက်များတွက်ချက်ခြင်း


6.7.3 တစ်ခါရောင်းလျင် ၂၀၀၀၀ နှင့် အထက် မြတ်သည့် အကြိမ်အရေအတွက်
ဤဥပမာတွင် အရောင်းအ၀ယ်တစ်ကြိမ် ပြုလုပ်လျင် ၂၀၀၀၀ နှင့် အထက်မြတ်သည့် အကြိမ် အရေအတွက်ကို တွက်ချက်လိုခြင်းဖြစ်သည်။ သို့ရာတွင် Sale Table ၌ Profit တွက်ချက်ထားသည့် Column မပါရှိသည့်အတွက် တိုက်ရိုက် Filter စစ်ထုတ် တွက်ချက်၍ မရပါ။ ထို့အတွက် Profit တန်ဖိုးရရှိရန်အတွက် Measure တစ်ခု ရေးသားပြီး ထို Measure ကို အသုံးပြု၍ စစ်ထုတ်ပါမည်။ Profit Measure အား အောက်ပါအတိုင်း ရေးသားပါမည် -
Profit:= SUMX(Sale,(RELATED('Product'[Unit Price])-RELATED('Product'[Unit Cost]))* (1-[Commission])*[Quantity])
အထက်ပါ Profit Measure ကို အသုံးပြုပြီး Sale Table တွင် Filter စစ်ထုတ်ရန် အောက်ပါအတိုင်း Measure တစ်ခု ရေးသားလိုက်ပါမည် -
Profit Count >= 20000 := COUNTROWS(FILTER(Sale,[Profit] >= 20000 ))
အထက်ပါ Formula တွင် Table အဖြစ် FILTER(Sale,[Profit] >= 20000 ) ဟု ရေးသားထားရာ Filter စစ်ထုတ်မည့် Column အဖြစ် Profit Measure ကို အသုံးပြုထားခြင်း ဖြစ်သည်။ Measure တစ်ခုကို Pivot Table တစ်ခုအတွင်းသို့ထည့်လိုက်သည့်အခါ သက်ဆိုင်ရာ Row ၊ Column များက Filter စစ်ထုတ်ပြီး သက်ဆိုင်ရာတန်ဖိုးကို တွက်ချက်သကဲ့သို့ပင် Sale Table အတွင်းသို့ Profit Measure ထည့်သွင်းလိုက်သည့်အခါ သက်ဆိုင်ရာ Row အလိုက် Profit များ တွက်ချက်သွားမည်ကို မှန်းဆ နားလည် နိုင်ပါသည်။ ( Measure တစ်ခုကို Table တစ်ခုအတွင်း ထည့်သွင်းလိုက်သည့်အခါ ထို Table ၏ Row များသည် Filter Context သဘောတရား သက်ရောက်သွားပြီး Row များအလိုက် သက်ဆိုင်ရာ တန်ဖိုးများ စစ်ထုတ်ရယူသွားခြင်း ဖြစ်သည်။ အသေးစိတ်ကို Evaluation Context အခန်းတွင် အသေးစိတ် ထပ်မံလေ့လာကြရ မည်ဖြစ်ပါသည်။ )
အထက်ပါ Profit Count Measure ကို Pivot Table အတွင်းသို့ ထည့်သွင်းလိုက်သည့်အခါ အောက်ပါအတိုင်း မြင်တွေ့ရမည်ဖြစ်ပါသည် -
ဤ Table အမည်ကို ProfitLevel ဟု အမည်ပေးပြီးနောက် Power Pivot Tab အောက်မှ Add to Data Model ကို ကလစ်ပြီး Data Model အတွင်းသို့ ထည့်သွင်းလိုက်ပါမည်။
ဤ Table မှ Amount Column ကို Pivot Table တွင် Slicer ဖြစ် ထည့်သွင်းသည့်အခါ အောက်ပါအတိုင်း မြင်တွေ့ရမည်ဖြစ်သည်။

6.7.4 Slicer တွင် ရွေးချယ်သည့် ပမာဏနှင့်အထက် ပိုမြတ်သည့် အကြိမ်အရေအတွက်
ဤဥပမာတွင် ၂၀၀၀၀ နှင့်အထက် မြတ်သည့်၊ ၃၀၀၀၀ နှင့် အထက်မြတ်သည့် အရေအတွက် စသည်ဖြင့် ကိန်းသေတန်ဖိုးများအပေါ်မူတည်၍ ရှာဖွေတွက်ချက်လိုခြင်းမဟုတ်ပဲ Slicer တွင် ရွေးချယ်လိုက်သည့် ကိန်းဂဏန်း တန်ဖိုးနှင့်အထက် မြတ်သည့် အရေအတွက်ကို ရှာဖွေတွက်ချက်လိုခြင်းဖြစ်သည်။ ဤအတွက် Slicer တွင်ထည့်သွင်းရန် အောက်ပါအတိုင်း Table တစ်ခုတည်ဆောက်ပါမည် -


ဤ Slicer တွင် ကိန်းဂဏန်းတန်ဖိုးတစ်ခုကို Click လိုက်သည့်အခါ ထို ကိန်းဂဏန်းနှင့်အထက် ရောင်းရသည့် အရေအတွက်ကို တွက်ချက်လို ခြင်းဖြစ်သည်။ သို့ဖြစ်ရာ User သည် Slicer မှ တန်ဖိုးတစ်ခုကို ကလစ်မှသာ တွက်ချက်မှုကို ဆောင်ရွက်နိုင်မည်ဖြစ်သည်။ ထို့အပြင် User သည် Slicer မှ တန်ဖိုးတစ်ခုထက်ပို၍ Select မှတ် ရွေးချယ်ပါက လဲ တွက်ချက်မှု ဆောင်ရွက်နိုင်မည် မဟုတ်ပါ။
တွက်ချက်မှု ဆောင်ရွက်ရန်အတွက် Slicer တွင် ၊ တစ်နည်းအားဖြင့် ProfitLevel Table ၏ Amount Column တွင် တန်ဖိုးတစ်ခုတည်း ရှိမှသာ တွက်ချက်နိုင်မည် ဖြစ်ပါသည်။
ထို့ကြောင့် ProfitLevel Table ၏ Amount Column တွင် တန်ဖိုးတစ်ခုတည်းရှိမှသာ တွက်ချက်မှုဆောင်ရွက်ရန်နှင့် သို့မဟုတ်ပါက Blank တန်ဖိုးသာရရှိစေရန် အတွက် HASONEVALUE Formula နှင့် IF Formula ကို အသုံးပြု၍ အောက်ပါအတိုင်း ရေးသားလိုက်ပါမည် -
=IF ( HASONEVALUE ( ProfitLevel[Amount] ), တွက်ချက်မှု , BLANK() )
တွက်ချက်မှုနေရာတွင် Formula ရေးသားရန်အတွက် ဥပမာ ၆.၇.၃ တွင် ရေးသားထားသည့် အောက်ပါ Formula ကို ပြန်လည် လေ့လာကြည့်ပါမည်။
= COUNTROWS(FILTER(Sale,[Profit] >= 20000 ))
အထက်ပါ Formula ၏ 20000 ဟူသည့် ကိန်းသေတန်ဖိုးနေရာတွင် Slicer တွင် ရွေးချယ်ထားသည့် တန်ဖိုးကို အစားထိုးရေးသားရမည် ဖြစ်သည်။ Slicer တွင် ရွေးချယ်သည့် တန်ဖိုးတစ်ခုတည်းသာ ProfitLevel Table ၏ Amount Column တွင် ကျန်ခဲ့မည်ဖြစ်ရာ 20000 ဟူသည့် ကိန်းဂဏန်းအား အောက်ပါ အတိုင်း အစားထိုး ရေးသားကြည့်ပါမည် -
= COUNTROWS(FILTER(Sale,[Profit] >= ProfitLevel( [Amount] ) ))
သို့ရာတွင် အထက်ပါ Formula အတိုင်း ရေးသားသည် အဖြေမှန်မရရှိသေးပဲ Error သာ ရရှိမည် ဖြစ်သည်။ အကြောင်းမှာ ProfitLevel( [Amount] ) ဟု ရေးသားထားခြင်းမှာ Table Expression ဖြစ်၍ အခြားကိန်းဂဏန်းတန်ဖိုးများနှင့် တိုက်ရိုက်နှိုင်းယှဉ်၍ မရခြင်း ဖြစ်သည်။ ထို့ကြောင် ထို Table Expression အား Scalar Expression ( တန်ဖိုးတစ်ခုတည်း ပြန်ရသည့် Formula ) အဖြစ် ပြောင်းလဲ ပေးရမည် ဖြစ်သည်။ ထိုသို့ Table Expression အား Scalar Expression အဖြစ် ပြောင်းလဲလိုသည့်အခါ VALUES Formula ကို အသုံးပြု ရေးသားနိုင်သည်။ ထို့ကြောင့် မှန်ကန်သည့် အဖြေရရှိရန်အတွက် Formula ကို အောက်ပါအတိုင်း ပြောင်းလဲ ရေးသားရမည် ဖြစ်ပါသည် -
Profit Count Greater than Selected Amount :=
IF( HASONEVALUE(ProfitLevel[Amount]),
COUNTROWS(FILTER(Sale,[Profit] >= VALUES(ProfitLevel[Amount]) )),
BLANK())
အထက်ပါ Formula အား Pivot Table အတွင်း ထည့်သွင်းပြီး ProfitLevel ၏ Amount Column အား Slicer အဖြစ် ထည့်သွင်းပါက အောက်ပါအတိုင်း မြင်တွေ့ရမည် ဖြစ်သည်။


