表格中在一个单元格内有多个条件,如何快速求和 No271
优秀创作者
某张表格中,需要求和的条件(工号)都在一个单元格内,现在需要对这个单元格内的所有工号的数量进行汇总。汇总的数据在表1,表1中有工号对应的数量。
需求:设计一个公式,实现快速求和单元格内多条件的汇总数量
最终结果如下图1所示:
图1
需求分析
先观察表1和表2的数据类型。表1是一个标准的一维数据,工号一列并且无重复项目,数量一列,表示每名工号的对应的数量。
表2是实际上也是一个一维数据,只是不太“标准”,因为工号这一列有的单元格包含多个工号,并且中间用逗号“,”分隔开了,这样就无法直接用SUMIFS求和了。所以古老师一般不推荐这样的表格设计思路。
表2要汇总表1对应的工号数量,难点就是分开单元格内的工号。只要分开了工号就好办了,分开工号后可以直接用查找与引用函数XLOOKUP查找工号对应的数量,并用SUM汇总求和。
而分开单元格内的内容最佳函数就是TEXTSPLIT,知道这个函数后问题就变得相当简单了。
分拆单元格
表2的条件是用逗号分隔开不同的工号,所以只需要录入函数:
F3=TEXTSPLIT(E3,","),双击向下填充,就可以把工号分开了。
函数释义:
把单元格E3内的内容按逗号按列分拆到不同的单元格。
效果如下图2所示:
图2
工号匹配数量
表1中的工号是没有重复项的,所以这里可以用上面分拆后的结果作为查找的条件,去表1中通过工号引用数量。录入函数:
F3=XLOOKUP(TEXTSPLIT(E3,","),B:B,C:C)
函数释义:
查找条件工号,查找区域B列(工号),返回区域C列(数量)
效果如下图3所示:
图3
求和数量
上面的公式通过引用把表1中的工单对应数量匹配过来了,最后一步只需要在嵌套上SUM函数就可以求和了,录入函数:
F3=SUM(XLOOKUP(TEXTSPLIT(E3,","),B:B,C:C))
公式释义:
对返回的结果求和
效果如下图4所示:
图4
方法2,FIND法
上面的是通过分本分拆的方法,还有一个方法是通过FIND来实现的。
录入函数:
=SUMPRODUCT(ISNUMBER(FIND($B$3:$B$12,E3))*$C$3:$C$12)
函数释义:
FIND查找表1中的工号在对应表2的工号的位置,并返回对应的数量,用ISNUMBER判断,如果是数字就返回TRUE,否则就返回FLASE,再乘以表1中的C列数量,以这个数组区域为条件通过SUMPRODUCT返回它们的乘积之和,并向下填充。
效果如下图5所示:
图5
上面的方法思路利用了FIND查找位置,通过逻辑值乘数量的乘积之和,间接的也实现了单元格内多条件求和的效果。
和古哥一起学习PMC生产计划运营,一辈子够不够?
关注古哥计划
WPS新函数:巧妙利用DROP 去重UNIQUE函数留下的“0” NO 270
WPS 新函数 EXPAND 实现工单快速分拆 No 266
WPS 新函数 CHOOSECOLS 快速对齐错乱列 No 265
WPS 新函数 WRAPROWS 把错乱的数据整理成标准二维数据 NO 261
创作者俱乐部成员
优秀创作者
创作者俱乐部成员