销售需求丨优质客户判定法

2021-09-02 09:31:02 浏览数 (1)

最开始在接触PowerBI的时候,记得有个小伙伴曾经和白茶说过这么一句话:“PowerBI的意义到底是什么,难道只是炫酷的图表么?实际用途就是看报表忽悠人?”

当时的白茶哑口无言,可是越深入学习PowerBI,越能知道它的用途是多么强大,可能DAX很多人都在诟病它,但是存在就是有价值,就是合理的。

开始今天的话题,IF的灵活运用。假如,我有一份不同客户的销售清单,我想知道这些客户在我这消费购买了什么。想以此来判断哪些客户是普通客户,哪些客户是优质客户,哪些是潜在客户。

示例如图:

(小伙伴请忽略单价,白茶图省事,瞎填的。)

涉及到的函数有VALUES,CONCATENATES。

之前的文章有提及到VALUES,它的作用是返回表格中的唯一值,这里就不赘述了。我们来看看CONCATENATES:

代码语言:javascript复制
DAX=
CONCATENATEX(<table>, <expression>, [delimiter])

Table:要对其进行计算的表,可以是直接的表,也可以是函数表。

Expression:计算表达式。

Delimiter:分隔符,可选项。

这个就是这次我们需要用到的新函数了。话不多说,编写代码:

代码语言:javascript复制
购买物品 =
CONCATENATEX (VALUES( Sheet1[物品类型] ),'Sheet1'[物品类型],",")

结果如图:

会发现,符合我们预期的效果。很清楚的知道了每个客户在我这里购买过的物品,但是好像总计栏有瑕疵啊,没关系,IF HASONE!

这里有两种写法:

代码语言:javascript复制
优化购买物品1=
IF(
    HASONEVALUE ( Sheet1[客户] ),
    CONCATENATEX ( VALUES ( Sheet1[物品类型] ),'Sheet1'[物品类型],",")
)

结果如图:

第二种写法:

代码语言:javascript复制
优化购买物品2=
IF(
    HASONEFILTER ( Sheet1[客户] ),
   CONCATENATEX ( VALUES ( Sheet1[物品类型] ),'Sheet1'[物品类型],",")
)

结果如图:

在这里HASONEVALUE与HASONEFILTER函数的作用差不多,如果硬说二者的区别的话,就是前者受跨筛选器影响,后者受直接筛选影响。具体的区别小伙伴可以自行测试,这里就不赘述了。

继续我们的话题,我现在知道每个客户的购买物品了,我还想知道购买的数量,咋办?继续,编写如下代码:

代码语言:javascript复制
购买数量 =
IF( HASONEVALUE ( Sheet1[客户] ), COUNTROWS ( VALUES ( Sheet1 ) ) )

结果如图:

(同理,这里的HASONEVALUE也可以替换成HASONEFILTER)

现在我知道了数量,按照咱中国式企业的需求,是不是还得知道总金额啊?继续:

代码语言:javascript复制
消费金额 =
SUMX ('Sheet1','Sheet1'[单价] *'Sheet1'[数量] )

这里不能使用SUM,因为涉及到整个表进行运算,所以选择SUMX进行迭代循环。如果单价和数量不在一个表,记得白茶之前提到过的RELATED函数。结果如下:

很符合我们的需求,那么可以进行最后一个问题了,进行优质判定。

这里小伙伴们可以自行根据自身标准进行调整,方法都差不多,白茶这里用消费金额进行判定,小于100是一般客户,100~200是中等客户,200以上是优质客户。编写如下代码:

代码语言:javascript复制
优质客户 =
IF( [消费金额] >100,IF( [消费金额] >200,"优质客户","中等客户"),"一般客户")

结果如图:

当然,这里也可以使用SWICH进行判定:

代码语言:javascript复制
优质客户2=
SWITCH(TRUE(), [消费金额] <=100,"一般客户", [消费金额] <200,"中等客户","优质客户")

结果如图:


小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。

0 人点赞