Forum Discussion
brand switch analysis
Hi,
I want to do a brand switch analysis,
i have following table, where in 2020/6 the brand "ABC" did an advertising campaign for their product "water".
I want to get 3 values:
1) new customer (during campaign) -> 1 (customer id no. 2)
2) brand switch (during campaign) -> 1 (customer id no. 1, switch from DEF to ABC)
3) repeat (no change in purchase behaviour) -> 1 (customer id no.3 , no change before and after the campaign bought ABC's water)
| year-month | customer id | product (bought) | brand name | advertising flag |
| 2020/5 | 1 | water | DEF | |
| 2020/5 | 3 | water | ABC | |
| 2020/6 | 2 | water | ABC | yes |
| 2020/6 | 1 | water | ABC | yes |
| 2020/6 | 3 | water | ABC | yes |
Anonymous , for the new customer, you can column/measure rank of Month inside the customer , so rank one means new.
For Rank Refer these links
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/367415
2 Replies
- amitchandakSuper User
Anonymous , for the new customer, you can column/measure rank of Month inside the customer , so rank one means new.
For Rank Refer these links
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/367415- AnonymousNot applicable
thanks, these articles were helpful!
I thought I'd share my solution quickly.
new customer=
RANKX(FILTER('table',[product_name] = EARLIER([product_name])&& [customer_id]=EARLIER([customer_id])),[date],,ASC)brand-change customer =IF (COUNTAX (FILTER ('table',[customer_id] = EARLIER([customer_id])&& [date] <= EARLIER([date])&& [product_name] = EARLIER([product_name])&& [brand name] <> EARLIER([brand name])), [customer_id]) = 1,1,0)