Practical Case Studies
ဤဥပမာတွင် Sale Table ရှိ ဝယ်ယူသည့်ပမာဏအပေါ်တွင် မူတည်၍ အဆင့်ခွဲခြား သတ်မှတ်မည် ဖြစ်ပါသည်။ ပထမဦးစွာ ဝယ်ယူသည့် ပမာဏ အပေါ်မူတည်၍ အဆင့်ခွဲခြား သတ်မှတ်ထားသည့် Banding ဟု အမည်ပေးထားသည့် အောက်ပါ Table ကို ရေးသား၍ Data Model အတွင်းသို့ထည့်သွင်းပါမည်။
ယခု Data Model အတွင်းသို့ ထည့်သွင်းထားသည့် Banding Table သည် အခြား မည်သည့် Table နှင့်မှ Relationship ချိတ်ဆက်ရန်မလိုအပ်ပါ။
Sale Table တွင် ဝယ်ယူသည့်ပမာဏအပေါ်မူတည်၍ သက်ဆိုင်ရာ Band Name များရရှိရန် Power Pivot Window အတွင်းရှိ Sale table တွင် Calculated Column တစ်ခုအဖြစ် အောက်ပါ အတိုင်း Formula ရေးသားလိုက်ပါမည်။
=CALCULATE( VALUES(Banding[Band Name]),
FILTER(Banding,
Banding[Min Qty]<=Sale[Quantity]&&Banding[Max Qty]>=Sale[Quantity]))
9.1 ဝယ်ယူသည့်ပမာဏအပေါ်မူတည်၍ အဆင့်ခွဲခြား သတ်မှတ်ခြင်း
ယခုအခါ Band ဟူသည့် Calculated Column တွင် သက်ဆိုင်ရာ Band Name များရရှိနေသည်ကို တွေ့ရပါမည်။
ရေးသားထားသည့် Formula ကို နားလည်နိုင်ရန်အတွက် လက်တွေ့လေ့ကျင့်ရေးသားရန်နှင့် အောက် ဖော်ပြပါ ရှင်းလင်းချက်များအား နားလည်သည်အထိ ထပ်ခါ ထပ်ခါ ဖတ်ရန် ဖြစ်ပါသည်။
-
CALCULATE Formula ၏ Syntax မှာ CALCULATE( Expression , Fitler1, Filter2, …) ဖြစ်ရာ ယခု Formula တွင် တွက်ချက်မည့် Expression နေရာ၌ VALUES Formula ကို ရေးသားထားခြင်းဖြစ်ပြီး Filter နေရာတွင် FILTER Formula ကို အသုံးပြုထားခြင်း ဖြစ်သည်။
-
ယခု Formula တွင် CALCULATE သည် တွက်ချက်မှုအပြင် နောက်ထပ် အရေးကြီးသည့် တာဝန်မှာ Sale Table ၏ Row Context များကို Filter Context အဖြစ် ပြောင်းလဲပေးခြင်း( Context Transition ) ဖြစ်သည်။
-
VALUES Formula သည် ယခု Formula တွင် Table Expression မှ ရရှိလာသည့် Column တစ်ခုအတွင်းရှိ တန်ဖိုးအား သာမန် တန်ဖိုးတစ်ခု ( Scalar Value ) အဖြစ် ပြောင်းလဲ ပေးသွားမည်ဖြစ်သည်။
-
FILTER Formula သည် Banding Table တွင် သတ်မှတ်ချက်နှင့် ညီသည့် Row ကိုသာ ကျန်ရှိစေရန် Filter စစ်ထုတ်ပေးသွားမည် ဖြစ်သည်။
-
Filter စစ်ထုတ်ရန် ရေးထားသည့် Formula မှာ FILTER(Banding, Banding[Min Qty]<= Sale[Quantity]&&Banding[Max Qty]>=Sale[Quantity])) ဖြစ်သည်။ Formula ကို ခွဲခြမ်းစိတ်ဖြာလေ့လာခြင်းမပြုမီ Row Context သဘောတရားအား နားလည်ရန် အရေးကြီး ပါသည်။
Formula တွင် ပါဝင်သည့် Banding Table ၏ Min Qty နှင့် Max Qty Column များတွင် Row တစ်ခုချင်း နှိုင်းယှဉ်လေ့လာနိုင်ရန် Row Context များ လိုအပ်သည် ဖြစ်ရာ ထို Row Context များကို FILTER Formula မှ ဖန်တီးပေးသွားမည်ဖြစ်ပါသည်။
Sale Table တွင် Calculated Column ရေးသားခြင်းဖြစ်သည့်အတွက် Sale Table ၏ Quantity Column တွင် လိုအပ်သည့် Row Context များအား Calculated Column မှ ဖန်တီး သက်ရောက်စေမည် ဖြစ်ပါသည်။ ဤ Row Context သည် Sale Table ၏ တစ်Row ချင်းအား တွက်ချက်စေမည် ဖြစ်ရာ Formula ရှိနေသည့် Row တွင် ၎င်း Row ၏ တန်ဖိုးတစ်ခုတည်းသာ ရှိနေမည် ဖြစ်သည်။
သို့ဖြစ်ရာ Sale Table ၏ Calculated Column တွင် Banding[Min Qty]<= Sale[Quantity] ဟု ရေးသားရာတွင် Banding Table ၏ Min Qty Column တစ်ခုလုံးနှင့် နှိုင်းယှဉ်ရမည့် တန်ဖိုးမှာ Sale Table – Quantity Column ၏ လက်ရှိ Row တွင်ရှိသော တန်ဖိုးတစ်ခုတည်း ဖြစ်ပါသည်။
-
သို့ဖြစ်ရာ FILTER(Banding, Banding[Min Qty]<= Sale[Quantity]&&Banding[Max Qty]>=Sale[Quantity])) ဟု ရေးသားခြင်းမှာ Banding Table ကို Sale Table ၏ လက်ရှိ Row တွင်ရှိသော တန်ဖိုးနှင့် နှိုင်းယှဉ်၍ Filter စစ်ထုတ်ပေးသွားမည် ဖြစ်သည်။ ( Min Qty Column တွင် လက်ရှိ Row ၏ Quantity တန်ဖိုးထက် ငယ် ပြီး Max Qty Column တွင် လက်ရှိ Row ၏Quantity တန်ဖိုးထက်ကြီးသည့် Row များကို Filter စစ်ထုတ်ပေးသွားမည် ဖြစ်ပြီး ထိုသို့Filter စစ်ထုတ်ပြီးပါက Banding Table တွင်Row တစ်ခုသာ ကျန်ခဲ့မည် ဖြစ်သည်။ )
-
Banding Table တွင် Row တစ်ခုတည်း ကျန်ရှိတော့သည် ဖြစ်ရာ Banding Table ၏ Band Name Column တွင် လည်းတန်ဖိုးတစ်ခုတည်းသာ ကျန်ရှိတော့မည် ဖြစ်ပါသည်။ ထို Band Name Column မှ တစ်ခုတည်းသော တန်ဖိုးအား သာမန် တန်ဖိုး Scalar Value အဖြစ်ပြောင်းလဲရန် VALUES(Banding[Band Name]) ဟု ရေးသားခြင်းဖြစ်သည်။
-
CALCULATE Formula သည် VALUES(Banding[Band Name]) ဟူသော တွက်ချက်မှုကို FILTER(Banding, Banding[Min Qty]<= Sale[Quantity]&&Banding[Max Qty]>= Sale[Quantity])) အတိုင်း Filter စစ်ထုတ်ပြီးတွက်ချက်ပေးပါဟု သတ်မှတ်ရေးသားခြင်းဖြစ် သည်။
ရေးသားရရှိလာသည့် Calculated Column အား Pivot Table တွင်ထည့်သွင်း အသုံးပြုသည့် အခါ အောက်ပါအတိုင်း တွေ့ရှိရပါမည်။
အထက်ပါ Pivot Table တွင် ရရှိသည့် တန်ဖိုးများမှာ မှန်ကန်သော်လည်း Row Label တွင် မြင်တွေ့ ရသည့် Band Name များ၏ အစဉ်မှာ ငယ်စဉ်ကြီးလိုက်မဟုတ်တော့သည်ကို တွေ့ရပါမည်။
ထို Band Name အစဉ်များ မှန်ကန်ရန်အတွက် Sale Table တွင် Band Code များ ရရှိရန် အောက်ပါ အတိုင်း Calculated Column တစ်ခု ထည့်သွင်းရေးသားလိုက်ပါမည်။
=CALCULATE( VALUES(Banding[Band Code]),
FILTER(Banding,
Banding[Min Qty]<=Sale[Quantity]&&Banding[Max Qty]>=Sale[Quantity]))
အထက်ပါအတိုင်း Band Code များရရှိပြီးသည့်နောက် Band Name များအား Band Code အတိုင်း Sorting စီပေးစေရန် အောက်ပါအတိုင်း Sort By Column ကို အသုံးပြုပါမည်။ (Sort Column နေရာတွင် Band ကို ရွေးချယ်၍ By Column နေရာတွင် Band Code အား ရွေးချယ်ရပါမည်။)


Sort By Column ဖြင့် သတ်မှတ်ပေးပြီးနောက် Pivot Table တွင် Band Name များ ၏ အစဉ်မှာ လိုအပ်သည့်အတိုင်း ငယ်စဉ်ကြီးလိုက် ရရှိမည်ကို အောက်ပါ အတိုင်း တွေ့ရှိရပါမည်။





