有些需求看起来很特别,但有时候确实会发生,而这往往是由于数据不规范造成的,例如下图1所示的示例。
图1
单元格区域A2:B19中是记录每月一些物品的领用数据,但是数值和物品名称输入到了一起,现在需要分别统计每种物品领用数量的总和。
幸好,输入的数据还是很有规律的,即都是数字加上物品名称,因此还是可以很方便地使用公式来得到结果。
在单元格D3中输入数组公式:
=SUM(IF(SUBSTITUTE(B2:B19,D2,"")<>B2:B19,SUBSTITUTE(B2:B19,D2,"")+0))& " " & D2
在单元格E3中输入数组公式:
=SUM(IF(SUBSTITUTE(B2:B19,E2,"")<>B2:B19,SUBSTITUTE(B2:B19,E2,"")+0))& " " & E2
在单元格F3中输入数组公式:
=SUM(IF(SUBSTITUTE(B2:B19,F2,"")<>B2:B19,SUBSTITUTE(B2:B19,F2,"")+0))& " " & F2
最终的结果如下图2所示。
图2
注意,由于是数组公式,应该按下Ctrl+Shift+Enter键才算完成了公式,Excel会在公式两端自动加上花括号。
在公式中,我们人为地将数据中的物品名称替换为空,然后与原数据进行对比,那么那些不相等的数据自然就是替换的物品的领用数值。对于SUBSTITUTE(B2:B19,D2,"")+0中的+0,是为了将替换后的文本转换为数字,否则将得不到正确的结果。