销售提成计算是企业销售管理中的核心环节,也是激励销售人员、提升业绩的重要手段,本篇文章介绍如何在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