人生没有彩排
每一天都是现场直播

在PowerBI中计算销售提成基数

销售提成计算是企业销售管理中的核心环节,也是激励销售人员、提升业绩的重要手段,本篇文章介绍如何在PowerBI中实现销售提成基数的计算。

问题描述

为计算各员工的提成,现在需要先计算出他们的销售提成基数,请自行建模完成计算。

其中,总监的销售提成基数是其领导的整个大部门的全部销售额,经理的销售提成基数则是其领导的小部门的全部销售额,普通员工的销售提成基数则是他们自己的销售额。

具体问题如下图所示:

本案例的初始数据如下:

员工表:

员工 职位 部门
A 经理 销售1部
B 销售员 销售1部
C 销售员 销售1部
E 经理 销售2部
F 销售员 销售2部
G 销售员 销售2部
H 总监 销售部
I 总监 运营部
J 经理 运营1部
K 运营员 运营1部
L 经理 运营2部
M 运营员 运营2部

销售绩效表:

日期 员工 销售额
2021年1月1日 A 1
2021年1月2日 B 2
2021年1月3日 C 3
2021年1月4日 E 4
2021年1月5日 F 5
2021年1月6日 G 6
2021年2月1日 B 7
2021年2月1日 C 8
2021年2月1日 E 9
2021年2月1日 F 10
2021年2月1日 G 11
2021年2月1日 H 12
2021年3月1日 I 13
2021年3月1日 J 14
2021年3月2日 K 15
2021年3月3日 L 16
2021年3月4日 M 17
2021年3月5日 K 18

若需其它辅助表等,可自行创建并建模。

解题要点

本案例的关键在于要找出总监或经理所在的部门下的所有员工,然后汇总他们的销售额即可。由于本案例的数据结构存在一定的规律,因此可以通过文本匹配来查找相关的部门,具体思路为:从所有部门中找出包含当前部门名称的所有字符的部门。

解决方案

首先,数据模型如下图所示:

然后,创建如下度量值:

销售提成基数 = 
SUMX(
    '员工表',
    VAR Job = '员工表'[职位]
    VAR DeptStr = 
        SELECTCOLUMNS(
            GENERATESERIES(1,LEN('员工表'[部门])),
            "Dept",MID('员工表'[部门],[Value],1)
        )
    VAR FilterDept = 
        FILTER(
            ALL('员工表'[部门]),
            CONTAINSSTRING('员工表'[部门],CONCATENATEX(DeptStr,[Dept],"*"))
            // COUNTROWS(FILTER(DeptStr,FIND([Dept],'员工表'[部门],1,0)))=LEN(EARLIER('员工表'[部门]))
        )
    RETURN
    IF(Job IN {"总监","经理"},
        CALCULATE(SUM('销售绩效表'[销售额]),FilterDept,ALL('员工表')),
        CALCULATE(SUM('销售绩效表'[销售额]))
    )
)

然后创建一个矩阵,将员工字段作为行标签,再将销售额字段以及上面的度量值放入矩阵的值字段即可,结果如下图所示:

总结

以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!

PBI/DAX技术交流群(QQ):344353627

赞(0) 打赏
未经允许不得转载:夕枫 » 在PowerBI中计算销售提成基数
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫打赏

微信扫一扫打赏