Practical Case Studies
9.6 Customers Distinct Count, New Customers, Lost Customers နှင့် Returning Customers များ တွက်ချက်ခြင်း
ယခုသင်ခန်းစာတွင် လအလိုက် ဝယ်ယူသည့် Customer အရေအတွက်၊ အသစ်ထပ်မံရရှိသည့် Customer အသစ်များ၊ ယခင်က ဝယ်ယူခဲ့ပြီး လက်ရှိ ဆက်လက် မဝယ်ယူတော့သည့် Lost Customer များနှင့် Lost Customer များထဲမှ ယခု ပြန်လည်ဝယ်ယူလာသည့် Returning Customer များ၏ အရေအတွက်ကို တွက်ချက်မည် ဖြစ်ပါသည်။
9.6.1 Customers Distinct Count
ရှေးဉီးစွာ အချိန်ကာလအလိုက် ဝယ်ယူသည့် Customer အရေအတွက်ကို သိရှိရန် DISTINCTCOUNT ကို အသုံးပြု၍ အောက်ပါအတိုင်း ရေးသားပါမည် -
No. of Customer:= DISTINCTCOUNT( Sales[ Customer Code ] )
DISTINCTCOUNT သည် Column တစ်ခုအတွင်းမှ Unique တန်ဖိုးအရေအတွက်ကို ရေတွက်ပေး သွားမည် ဖြစ်ပါသည်။

ဤစာမျက်နှာတွင်ပါဝင်သည့် ခေါင်းစဉ်များ
ဆက်လက်လေ့လာရမည့် သင်ခန်းစာ
9.6.2 New Customers
ဤသင်ခန်းစာတွင် ယခင်က ဝယ်ယူမှုမရှိပဲ ယခုလက်ရှိကာလတွင် စတင် ဝယ်ယူသူများကို New Customer ဟု ခေါ်ဆိုသတ်မှတ်ခြင်းဖြစ်ပါသည်။
လက်ရှိတွက်ချက်မှုနှင့် သက်ဆိုင်သည့်ကာလအတွက် New Customer အရေအတွက် ရရှိရန် အောက်ပါအတိုင်း Formula ရေးသားပါမည်။
New Customers:=
CALCULATE(COUNTROWS(Customer),
FILTER(Customer,
CALCULATE( COUNTROWS(Sales) )>0
&&
CALCULATE(COUNTROWS(Sales), FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )) =0
)
)
ရေးသားထားသည့် Formula အား နားလည်စေရန် တစ်ဆင့်ချင်း ရှင်းပါမည်။
ရေးသားသည့် Formula ၏ အဓိကတွက်ချက်မည့် အစိတ်အပိုင်းမှာ COUNTROWS(Customer) ဖြစ်သည်။ ဤ Formula ၏ အဓိက ရည်ရွယ်ချက်မှာ Customer Table ၏ Row အရေအတွက်ကို တွက်ချက်လိုခြင်းဖြစ်သည်။ သို့သော် ထိုသို့တွက်ချက်ရာတွင် သတ်မှတ်ချက်နှင့် ညီသည့် Customer Row များကိုသာ ရေတွက်လိုခြင်း ဖြစ်သည့်အတွက် Customer Table တွင် လိုအပ်သည့် Filter စစ်ထုတ်မှုများပြုလုပ်နိုင်ရန်အတွက် CALCULATE Formula ဖြင့် ပေါင်းစပ် ရေးသားခြင်းဖြစ်သည်။ ထို့ကြောင့် Formula မှာ အောက်ပါအတိုင်း ဖြစ်သွားပါမည် -
= CALCULATE(COUNTROWS(Customer), FILTER ( Customer, ………… ) )
Customer Table တွင် ယခင်က ဝယ်ယူမှုမရှိပဲ ယခု လက်ရှိ Pivot Table ၏ Current Context တွင် ( ယခုလက်ရှိတွက်ချက်မှုနှင့်သက်ဆိုင်သည့် ကာလတွင် ) စတင်ဝယ်ယူသည့် Customer များကို စစ်ထုတ် လိုခြင်းဖြစ်ပါသည်။ အထက်ပါသတ်မှတ်ချက်အား နှစ်ပိုင်းခွဲလိုက်လျင် ယခင်က ဝယ်ယူမှု မရှိခြင်း နှင့် ယခု လက်ရှိကာလတွင် ဝယ်ယူမှု ရှိခြင်း ဟူ၍ ရရှိပါမည်။
လက်ရှိကာလတွင် ဝယ်ယူမှု ရှိသည့်သူများကိုသာ စစ်ထုတ်ရန်အတွက် အောက်ပါအတိုင်း သတ်မှတ်ချက်ရေးသားပါမည် -
COUNTROWS(Sales) >0
အထက်ပါ Formula သည် Sales Table ၏ Row များကို ရေတွက်ခြင်းဖြစ်သော်လည်း Sales Table တစ်ခုလုံးကို ရေတွက်ခြင်းမဟုတ်ပဲ Pivot Table ၏ Current Filter Context မှ စစ်ထုတ်၍ ကျန်ရှိသည့် Sales Table ကိုသာ ရေတွက်သွားမည် ဖြစ်ပါသည်။ ယခုထိ ရရှိသည့် Formula များကို ပေါင်းစပ်ရေးသား လျင် အောက်ပါအတိုင်း ရရှိမည် ဖြစ်ပါသည် -
= CALCULATE(COUNTROWS(Customer),
FILTER ( Customer, COUNTROWS(Sales) >0 ) )
အထက်ပါ Formula တွင် ရေးသားထားချက်အရ Customer Table ၏ Row တစ်ခုစီတွင် COUNTROWS(Sales) ကို တွက်ချက်ပေးသွားမည်ဖြစ်သည်။ ထိုသို့တွက်ချက်ရာတွင် သက်ဆိုင်ရာ Row Context ဖြစ်ပေါ်နိုင်ခြင်းမရှိသည့်အတွက် Sales Table တစ်ခုလုံးရှိ Row အားလုံး၏ အရေ အတွက်ကို Customer Table ၏ Row တိုင်းတွင် ရရှိနေမည် ဖြစ်ပါသည်။ သက်ဆိုင်ရာ Customer Row တစ်ခုစီ၏ တန်ဖိုးနှင့် သက်ဆိုင်သည့် Sales Table မှ Row များကို ရေတွက်လိုခြင်းဖြစ်သည့်အတွက် Customer Table ၏ Row တစ်ခုစီတွင်ရှိသည့် Row Context အား Filter Context အဖြစ် ပြောင်းလဲ ပေးနိုင်ရန်အတွက် CALCULATE Formula နှင့် ပေါင်းစပ်အသုံးပြုပါမည်။
အောက်ပါ Formula သည် Pivot Table ၏ Current Filter Context မှ စစ်ထုတ်၍ ကျန်ရှိသည့် Sales Table တွင် Customer Table ၏ လက်ရှိ Row နှင့် သက်ဆိုင်သည့် Row အရေအတွက်ကို Filter စစ်ထုတ် တွက်ချက်ထားသည့် အရေအတွက်ကို ရရှိမည် ဖြစ်ပါသည် -
= CALCULATE(COUNTROWS(Customer),
FILTER ( Customer, CALCULATE(COUNTROWS(Sales) ) >0 ) )
တစ်နည်းဆိုရသော် လက်ရှိတွက်ချက်မှုနှင့်ဆိုင်သည့် ကာလတွင် ဝယ်ယူသည့် အကြိမ် တစ်ကြိမ်ထက်ပို သည့် Customer Row များကို Filter စစ်ထုတ်ပြီး ရေတွက်ထားခြင်းဖြစ်သည်။
ယခုလက်ရှိ ရေးသားထားသည့် Formula ၏ ရလဒ်မှာလက်ရှိတွက်ချက်မှုတွင် ဝယ်ယူမှုရှိသည့် Customer အရေအတွက်ဖြစ်သည်။ သို့သော် New Customer တွက်ချက်ရန်အတွက် ယခုလက်ရှိကာလတွင် ဝယ်ယူသည့် Customer အားလုံးကို ရေတွက်လိုခြင်းမဟုတ်ပဲ ယခင်က မဝယ်ယူဖူးပဲ ယခုကာလတွင်မှ ဝယ်ယူသည့်သူများကို ရေတွက်ရမည် ဖြစ်သည်။
ယခင်က ဝယ်ယူမှု မရှိသူများအား Filter စစ်ထုတ်ရန် အောက်ပါအတိုင်း Formula ရေးသားပါမည် -
=CALCULATE(COUNTROWS(Sales),
FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )) =0
ရေးသားသည့် Formula ၏ အဓိပ္ပါယ်မှာ Sales Table ၏ Row များကို Filter Formula မှ Date Table ကို Filter စစ်ထုတ်ထားသည့်အတိုင်း ရေတွက် ပေးရန်ဖြစ်ပါသည်။ Date Table ကို Filter စစ်ထုတ်ရန် အတွက် အောက်ပါအတိုင်း ရေးသားထားခြင်းဖြစ်သည်။
FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )
အနီရောင်ဖြင့် ပြထားသည့် Date column တွင် FILTER Formula ၏ Row Context များ သက်ရောက်နေမည် ဖြစ်ပြီး အပြာရောင်ဖြင့်ပြထားသည့် Date column တွင် Pivot Table ၏ လက်ရှိ Current Filter Context မှ သက်ရောက်နေမည် ဖြစ်ပါသည်။
ထို့ကြောင့် ရေးသားထားသည့် Formula ၏ ဆိုလိုရင်းမှာ Date Table ၏ Date Column ကို လက်ရှိ Pivot Table ၏ Current Filter Context နှင့် သက်ဆိုင်သည့် Date များထဲမှာ အငယ်ဆုံး Date ထက်ငယ်သည့် Date များကို Filter စစ်ထုတ်ပေးရန်ဖြစ်သည်။ ထို့ကြောင့် အောက်ပါ Formula သည် လက်ရှိ Pivot Table ၏ Current Filter Context နှင့် သက်ဆိုင်သည့် Date များ၏ အရင်ကာလတွင် ဝယ်ယူသည့် Sales Table မှ Row များကို ရေတွက် ပေးသွားမည် ဖြစ်ပါသည် -
=CALCULATE(COUNTROWS(Sales),
FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )
အရင်ကာလတွင် ဝယ်ယူမှု မရှိသည့် Customer များကို စစ်ထုတ်လိုသည့်အတွက် အထက်ပါ Formula ကို Logical Test ဖြစ်စေရန် အောက်ပါအတိုင်း ပြောင်းလဲ ရေးသားလိုက်ပါမည် -
=CALCULATE(COUNTROWS(Sales),
FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )) =0
ယခုအခါ လက်ရှိ Pivot Table ၏ Current Filter Context တွင် ဝယ်ယူထားသူများကို စစ်ထုတ်မည့် Filter Criteria နှင့် လက်ရှိ Pivot Table ၏ Current Filter Context အရင်ကာလတွင် ဝယ်ယူမှု မရှိသည့် သူများကို စစ်ထုတ်မည့် Filter Criteria ပါ ရရှိပြီ ဖြစ်သည့်အတွက် New Customer အရေအတွက်ရရှိရန် အောက်ပါအတိုင်း ပေါင်းစပ် ရေးသားပါမည် -
New Customers:=
CALCULATE(COUNTROWS(Customer),
FILTER(Customer,
CALCULATE( COUNTROWS(Sales) )>0
&&
CALCULATE(COUNTROWS(Sales), FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date]) )) =0
)
)
9.6.3 Lost Customers
ဤသင်ခန်းစာတွင် ယခင်က ဝယ်ယူမှုရှိခဲ့သော်လည်း Pivot Table ၏ Current Filter Context ရှိ လက်ရှိ လနှင့် ယခင်ပြီးခဲ့သည့်လတွင် ဝယ်ယူမှုမရှိတော့သည့် Customer များကို Lost Customer ဟု ခေါ်ဆို သတ်မှတ်ခြင်း ဖြစ်ပါသည်။
ရေးသားမည့် Formula သဘောတရားသည် New Customers တွင် ရေးသားခဲ့သည့် Formula သဘောတရားနှင့် ဆင်တူသည်။ Customer Table ကို လိုအပ်သည့်အတိုင်း Criteria သတ်မှတ်ချက်များ နှင့်အညီ Filter စစ်ထုတ်ပြီး သတ်မှတ်ချက်နှင့်ညီ၍ Filter စစ်ထုတ်ကျန်ရှိသည့် Row အရေအတွက်ကို ရေတွက်ရန် ဖြစ်သည်။
Filter စစ်ထုတ်မည့် Criteria များမှာ Pivot Table ၏ Current Filter Context ၏ လက်ရှိလနှင့် ယခင်လ စုစုပေါင်းနှစ်လတွင် ဝယ်ယူမှု မရှိသူများကို စစ်ထုတ်ရန် နှင့် ထိုနှစ်လ အရင်တွင် ဝယ်ယူခဲ့သူများ ကို စစ်ထုတ်ရန် ဖြစ်သည်။
နှစ်လအရင် ကာလများတွင် ဝယ်ယူခဲ့သူများကို စစ်ထုတ်နိုင်ရန်အတွက် အောက်ပါအတိုင်း Formula ရေးသားပါမည် -
=CALCULATE(COUNTROWS(Sales),
FILTER(ALL ('Date'), 'Date'[Date] < MIN('Date'[Date]) - 30)) > 0
Formula ၏ ဆိုလိုရင်းမှာ Date Table တွင် Filter စစ်ထုတ်ပြီးနောက် ကျန်ရှိသည့် Sales Table မှ Row များကို ရေတွက်၍ ရရှိလာသည့် ရလဒ်သည် 0 ထက်ကြီးလျင် TRUE ဟု ရရှိစေရန်ဖြစ်သည်။
Date Table တွင် စစ်ထုတ်သည့် Filter ၏ အဓိပ္ပါယ်မှာ Pivot Table ၏ Current Filter Context ရှိ လက်ရှိလ ၏ ရက်စွဲများမှ ရက် ၃၀ နှုတ်၍ အဆိုပါရက်စွဲများထဲမှ အငယ်ဆုံး ရက်စွဲ ထက်ငယ်သည့် Date Column ၏ ရက်စွဲများကို ရယူစစ်ထုတ်ရန်ဖြစ်သည်။ ယခုလက်ရှိလ၏ ရက်စွဲများမှ ယခင်လ၏ လက်စွဲများသို့ ရောက်ရှိရန် ၃၀ နှုတ်ပေးခြင်းဖြစ်သည်။
လက်ရှိလနှင့် ယခင်လ စုစုပေါင်းနှစ်လတွင် ဝယ်ယူမှု မရှိသူများကို စစ်ထုတ်ရန်အတွက် အောက်ပါအတိုင်း Formula ရေးသားပါမည် -
= CALCULATE(COUNTROWS(Sales),
FILTER(ALL('Date'),'Date'[Date] > MIN('Date'[Date]) - 30 && 'Date'[Date] < MAX ( 'Date'[Date] ) ) ) = 0
ရေးသားသည့် သဘောတရားများမှာ ပထမ Criteria သတ်မှတ်ချက်နှင့် အတူတူပင်ဖြစ်သည်။ ယခု Criteria တွင် Pivot Table ၏ Current Filter Context ရှိ လက်ရှိလ ၏ ရက်စွဲများမှ ရက် ၃၀ နှုတ်၍ အဆိုပါရက်စွဲများထဲမှ အငယ်ဆုံး ရက်စွဲထက်ကြီး၍ လက်ရှိလ ၏ ရက်စွဲများမှ အကြီးဆုံးရက်ထိငယ်သည့် အဆိုပါ လနှစ်လ အတွက် Sales Table ကို Row များ ရေတွက်သည့်အခါ 0 နှင့် ညီလျင် ၊ တနည်းအားဖြင့် ဝယ်ယူမှု မရှိလျင် Filter စစ်ထုတ်မည်ဟု ဆိုလိုရင်းဖြစ်သည်။
လိုအပ်သည့် Filter နှစ်ခုလုံးအတွက် Criteria များ ရရှိပြီဖြစ်သည့်အတွက် Lost Customer အရေအတွက် ရရှိရန် အောက်ပါအတိုင်း ပေါင်းစပ်ရေးသားပါမည် -
Lost Customers:=
CALCULATE( COUNTROWS(Customer),
FILTER( Customer,
CALCULATE(COUNTROWS(Sales), FILTER(ALL ('Date'), 'Date'[Date] < MIN('Date'[Date]) - 30)) > 0
&&
CALCULATE(COUNTROWS(Sales), FILTER(ALL('Date'),'Date'[Date] > MIN('Date'[Date]) - 30 && 'Date'[Date]
< MAX ( 'Date'[Date] ) ) ) = 0
)
)
9.6.4 Returning Customers
ဤသင်ခန်းစာတွင် ယခင်ကဝယ်ယူခဲ့ဘူးသော်လည်း ပြီးခဲ့သည့်နှစ်လအတွင်း ဝယ်ယူမှုမရှိခဲ့ပဲ ယခုလတွင် ပြန်လည်ဝယ်ယူလာသည့် Customer များကို Returning Customer ဟု ခေါ်ဆို သတ်မှတ်ခြင်း ဖြစ်ပါသည်။
အထက်တွင် ရှင်းပြခဲ့သည့် ဥပမာများနှင့် ယခု ရေးသားသည့် Formula သဘောတရားအားလုံး အတူတူ ဖြစ်သည်။ Customer Table ကို အောက်ပါ Criteira များအားလုံးနှင့် ညီသည့် Row များကို Filter စစ်ထုတ်၍ ရေတွက်ပေးသွားမည် ဖြစ်သည်။ Pivot Table ၏ Current Filter Context ရှိ လက်ရှိလ တွင် ဝယ်ယူသူများ ကို စစ်ထုတ်ရန် အောက်ပါ အတိုင်း Criteira ရေးသားပါမည် -
CALCULATE(COUNTROWS(Sales)) > 0
ပြီးခဲ့သည့် နှစ်လအရင် ဝယ်ယူခဲ့ဘူးသူများ ကို စစ်ထုတ်ရန် အောက်ပါအတိုင်း Criteria ရေးသားပါမည် -
CALCULATE( COUNTROWS(Sales), FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date])-60)) > 0
ပြီးခဲ့သည့် နှစ်လအတွင်း ဝယ်ယူမှု မရှိသူများကို စစ်ထုတ်ရန် အောက်ပါအတိုင်း Criteria ရေးသားပါမည် -
CALCULATE( COUNTROWS(Sales),
FILTER(ALL('Date'), 'Date'[Date] > MIN('Date'[Date]) – 60
&&
'Date'[Date] < MIN('Date'[Date]) -1) ) = 0
Filter စစ်ထုတ်ရန် လိုအပ်သည့် Criteria များ ရရှိပြီဖြစ်သည့်အတွက် Returning Customer အရေအတွက် ရရှိရန် အောက်ပါအတိုင်း ပေါင်းစပ်ရေးသားပါမည် -
Returning Customers:=
CALCULATE(COUNTROWS(Customer),
FILTER(Customer,
CALCULATE(COUNTROWS(Sales))> 0
&&
CALCULATE( COUNTROWS(Sales), FILTER(ALL('Date'), 'Date'[Date] < MIN('Date'[Date])-60))>0
&&
CALCULATE( COUNTROWS(Sales), FILTER(ALL('Date'), 'Date'[Date] > MIN('Date'[Date]) – 60 && 'Date'[Date] < MIN('Date'[Date]) -1)) = 0
)
)
Number of Customer, New Customer, Lost Customer နှင့် Returning Customer များအတွက် ရေးသားခဲ့သည့် Measure များကို Pivot Table သို့ထည့်သွင်းသည့်အခါ အောက်ပါအတိုင်း မြင်တွေ့ရမည် ဖြစ်ပါသည်။

