销售需求丨优质客户判定法(修订)
最开始在接触PowerBI的时候,记得有个小伙伴曾经和白茶说过这么一句话:“PowerBI的意义到底是什么,难道只是炫酷的图表么?实际用途就是看报表忽悠人?”
当时的白茶哑口无言,可是越深入学习PowerBI,越能知道它的用途是多么强大,可能DAX很多人都在诟病它,但是存在就是有价值,就是合理的。
开始今天的话题,IF的灵活运用。假如,我有一份不同客户的销售清单,我想知道这些客户在我这消费购买了什么。想以此来判断哪些客户是普通客户,哪些客户是优质客户,哪些是潜在客户。
示例如图:
(小伙伴请忽略单价,白茶图省事,瞎填的。)
涉及到的函数有VALUES,CONCATENATES。
之前的文章有提及到VALUES,它的作用是返回表格中的唯一值,这里就不赘述了。我们来看看CONCATENATES:
DAX=
CONCATENATEX(<table>, <expression>, [delimiter])
Table:要对其进行计算的表,可以是直接的表,也可以是函数表。
Expression:计算表达式。
Delimiter:分隔符,可选项。
这个就是这次我们需要用到的新函数了。话不多说,编写代码:
购买物品 =
CONCATENATEX (VALUES( Sheet1[物品类型] ),'Sheet1'[物品类型],",")
结果如图:
会发现,符合我们预期的效果。很清楚的知道了每个客户在我这里购买过的物品,但是好像总计栏有瑕疵啊,没关系,IF+HASONE!
这里有两种写法:
优化购买物品1=
IF(
HASONEVALUE ( Sheet1[客户] ),
CONCATENATEX ( VALUES ( Sheet1[物品类型] ),'Sheet1'[物品类型],",")
)
结果如图:
第二种写法:
优化购买物品2=
IF(
HASONEFILTER ( Sheet1[客户] ),
CONCATENATEX ( VALUES ( Sheet1[物品类型] ),'Sheet1'[物品类型],",")
)
结果如图:
在这里HASONEVALUE与HASONEFILTER函数的作用差不多,如果硬说二者的区别的话,就是前者受跨筛选器影响,后者受直接筛选影响。具体的区别小伙伴可以自行测试,这里就不赘述了。
继续我们的话题,我现在知道每个客户的购买物品了,我还想知道购买的数量,咋办?继续,编写如下代码:
购买数量 =
IF( HASONEVALUE ( Sheet1[客户] ), COUNTROWS ( VALUES ( Sheet1 ) ) )
结果如图:
(同理,这里的HASONEVALUE也可以替换成HASONEFILTER)
现在我知道了数量,按照咱中国式企业的需求,是不是还得知道总金额啊?继续:
消费金额 =
SUMX ('Sheet1','Sheet1'[单价] *'Sheet1'[数量] )
这里不能使用SUM,因为涉及到整个表进行运算,所以选择SUMX进行迭代循环。如果单价和数量不在一个表,记得白茶之前提到过的RELATED函数。结果如下:
很符合我们的需求,那么可以进行最后一个问题了,进行优质判定。
这里小伙伴们可以自行根据自身标准进行调整,方法都差不多,白茶这里用消费金额进行判定,小于100是一般客户,100~200是中等客户,200以上是优质客户。编写如下代码:
优质客户 =
IF( [消费金额] >100,IF( [消费金额] >200,"优质客户","中等客户"),"一般客户")
结果如图:
当然,这里也可以使用SWICH进行判定:
优质客户2=
SWITCH(TRUE(), [消费金额] <=100,"一般客户", [消费金额] <200,"中等客户","优质客户")
结果如图:
小伙伴们❤GET了么?
白茶会不定期的分享一些函数卡片
(文件在知识星球[PowerBI丨需求圈])
这里是白茶,一个PowerBI的初学者。
下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。
数据分析进阶之路,带你深入了解可视化技巧。