PMC日常工作场景分享:表1是销售部门的订单签约明细,需要对按业绩分配比例发放奖金,如销售一部对应的订单号ABC001是由三个销售人员负责的,业绩分配分别为15%、30%、55%。每个项目的奖金固定是10000元。本来是一个非常简单的奖金分配计算,但由于项目的业绩分配比例是在一个单元格内,就变得非常困难起来了。
当前的任务是设计一款表格函数,旨在实现一键将业务人员各自的业务分配信息精确填入相应单元格中,从而为后续业绩奖金的计算提供便利。
需求分析在审视上表的数据结构时,我们注意到关键问题在于如何有效地将涉及多名销售人员的业绩分配比例快速拆解,并分别呈现在独立的单元格中。这些待拆分的单元格具有一个显著特征:不同的业务人员信息是通过单元格内部的强制换行实现层次区分的。这一特性恰恰为函数识别并提取所需数据提供了关键线索,即利用强制换行符号作为判断依据。
成功实现分离后,关键词形式如“张三:15%”,此时只需提取“:”之后的数值,即可精准获取每位业务人员的提成百分比。一旦提成比例被分离出来,将其乘以项目金额固定值10,000元,即可计算得出对应业务人员应得的奖金数额。
分离数据首先,我们聚焦于处理首个单元格的内容。考虑到Excel的TEXTSPLIT函数具备按特定符号进行文本拆分的能力,我们可以应用如下公式:
=TEXTSPLIT(E3, CHAR(10))
函数释义:
此公式将对E3单元格内的数据进行有效分离(CHAR(10)为强制换行符号)。效果如下图
连接数据完成分离后,数据呈现为多行形式,但与之对应的订单号、签约部门及日期信息仍保持在原行。为确保数据维度的一致性,我们需要运用适当函数将这些信息调整至与分离后数据相同的格式。
录入以下函数:
=IFNA(HSTACK(B3:D3,TEXTSPLIT(E3,":",CHAR(10))),B3:D3)
函数释义:
为实现数据维度一致性,我们可采用HSTACK函数将原有的订单号、部门及日期横向拼接成一个新的水平数组。鉴于此操作可能导致部分数据区域因维度不匹配而出现错误,我们适时引入IFNA函数,用于对这类错误进行屏蔽处理,确保在发生错误的情况下依然返回原始的订单号、部门及日期信息。如此一来,便能妥善地使分离后的数据与原有数据保持格式上的统一。
效果如下图所示:
更改公式在成功实现对单元格E3数据的分离后,接下来的目标是将E4与E5单元格的数据同样进行处理,并将结果串联起来。为此,我们可先对先前使用的公式进行适当的调整与优化,以便后续利用REDUCE函数实现公式的串联操作。
录入以下公式:
=LET(a,OFFSET(E3,,-3,,3),IFNA(HSTACK(a,TEXTSPLIT(E3,":",CHAR(10))),a))
函数释义:
为使上述公式适应于REDUCE函数的X、Y参数定义,我们可借助OFFSET函数,仅保留对单元格E3的引用,从而使E3符合REDUCE函数中Y参数的角色。这是一个非常经典的应用。
效果如下图:
串联数据在对公式进行相应调整后,结合固定的函数模板,我们现已具备对E3至E5范围内的数据进行串联合并堆叠的能力。请参阅以下公式:
=REDUCE(B2:E2,E3:E5,LAMBDA(X,Y,VSTACK(X,LET(a,OFFSET(Y,,-3,,3),IFNA(HSTACK(a,TEXTSPLIT(Y,":",CHAR(10))),a)))))
效果如下图:
计算奖金:计算奖金时,仅需提取出业绩分配比例,随后基于“:”符号进行分离,最后将分离出的比例乘以固定奖金金额10,000元,即可得出每位业务人员应得的奖金数额。
录入函数:
=--TEXTAFTER(J3:J14,":")*10000
效果如下图:
抖音 关注 “古哥计划”,古老师直播讲解
和古哥一起学习PMC生产计划运营,一辈子够不够?