自动分配客户对应业务的奖金No.263
优秀创作者
某工厂的业务部门年底需要发放奖金,不同的客户对应的业务人数也不一样,现在需要按每个客户对应的业务人数自动分配奖金,分配的原则为按业务人数平均分析。
如客户徐是由杜小和赵文化共同负责,这个客户对应的奖金是6000,所以分配为每个业务3000。
数据及模拟结果如下图1所示:
图1
需求分解:
这个需求有三个方面:
第1:判断客户对应的业务人数,这里可以用符号逗号来做文章,可以发现无逗号的就是1,有逗号的就是逗号数量加1。
第2:判断出业务人员数后,就可以根据这个条件来重复了,如有两个业务就重复两次。这里可以先重复再合并再分开的“套路”。
第3:业务人数分开后,再用金额除以对应的业务人员数,再重复用上面第2点的思路,重复→合并→分开;
总结起来:核心就是判断业务人员数,有了这个数量一切都好办了;
手工模拟结果如下图2所示:
图2
判断业务人数
为了方便大家理解,这里分开写函数:
录入函数1:
=LEN(C3:C6)
函数释义:
业务中包含逗号的长度
录入函数2:
=LEN(SUBSTITUTE(C3:C6,",",""))
函数释义:
业务中不包含逗号的长度,先替换函数把逗号替换成空后,再判断其长度;
录入函数3
=H3#-I3#+1
函数释义:
无逗号的就是1,有逗号的就是逗号数量加1,原来无逗号和替换逗号后都是1,相减就是0,再加上1,就是业务人数了,最后合并公式:
=LEN(C3:C6)-LEN(SUBSTITUTE(C3:C6,",",""))+1
效果如下图3所示:
图3
对客户进行重复:
为了方便大家理解,先用辅助列的方式写这个函数,等完全写完后,再进行公式合并。
需要重复的客户,条件为F3#,也就是上次判断业务人数的最后结果。
录入公式:
辅助1=REPT(B3:B6&"/",F3#)
函数释义:
选择客户数B3:B6并连接一下特殊符号“/”用来起来隔离效果,重复数量为业务人数据
录入公式:
辅助2=CONCAT(J3#)
函数释义:
把刚刚重复在多行的单元格合并成一行;
录入公式:
辅助3=DROP(TEXTSPLIT(J9#,,"/"),-1)
函数释义:
根据特殊符号“/”按行分开,并去除最后一个单元格(DROP函数,参数为-1代表最后一个单元格)
最后合并公式:
=DROP(TEXTSPLIT(CONCAT(REPT(B3:B6&"/",LEN(C3:C6)-LEN(SUBSTITUTE(C3:C6,",",""))+1)),,"/"),-1)
效果如下图4所示:
图4
对业务进行分行:
因为业务这边的分行原则非常简单,只需要根据符号逗号分行就可以了。
录入函数:
辅助1=TEXTJOIN(",",1,C3:C6)
函数释义:
把不同行的业务通过逗号连接到一起;
录入函数:
辅助2=TEXTSPLIT(H3,,",")
函数释义:
对合并在一起的数据用符号逗号进行分行。
合并函数:
=TEXTSPLIT(TEXTJOIN(",",1,C3:C6),,",")
效果如下图5所示:
图5
对奖金进行分配
对奖金进行分配的思路和对客户进行重复的思路基本一致。
录入函数:
辅助1=D3:D6/F3#&"/"
函数释义:
把金额进行平均分配,分配的思路就是除以业务人员,同时为了后面合并,除完后再连接符号“/”。
录入函数:
辅助2=REPT(H3#,F3#)
函数释义:
对平均分析的金额按业务人数量进行重重;
录入函数:
辅助3=CONCAT(K3#)
函数释义:
对重复后的奖金进行合并到一个单元格
录入函数:
辅助4=DROP(TEXTSPLIT(C8#,,"/"),-1)
函数释义:
对合并后的单元格按符号“/”进行按列分拆,同时把最后一个单元格用DROP去除。
合并公式:
=--DROP(TEXTSPLIT(CONCAT(REPT(D3:D6/(LEN(C3:C6)-LEN(SUBSTITUTE(C3:C6,",",""))+1)&"/",LEN(C3:C6)-LEN(SUBSTITUTE(C3:C6,",",""))+1)),,"/"),-1)
效果如下图6所示:
图6
合并公式:
到了上面图7这里已经把需要的结果做出来了,现在需要合并公式,合并公式没有什么技巧,就是一层一层合并。
录入函数:
到些就实现了一个公式(动态数组)解决了上述指定的需求。
效果如下图7所示:
图7
和古哥一起学习PMC生产计划运营,一辈子够不够?
请关注古哥计划
WPS 新函数 WRAPROWS 把错乱的数据整理成标准二维数据 NO 261
优秀创作者
优秀创作者