SUMPRODUCT函数功能强大,与其他函数配合,往往能解决很多问题。本文介绍的技巧将是SUMPRODUCT函数与COUNTIF函数组合,统计单元格中的单词或句子中出现的指定的字符列表中的字符的个数。
如下所示,在单元格B3中,共出现了字符/单词列表中的“a”、“b”、“f”共3个字符;在单元格B4中,字符/单词列表中的所有4个字符都出现了;其他单元格依此类推。
在单元格C3中,使用的公式是:
=SUMPRODUCT(COUNTIF(B3,”*”&$E$3:$E$6&”*”))
下拉至单元格C9。
下面,我们来看看这个公式的运行原理。
公式中的主要部分是:
COUNTIF(B3,”*”&$E$3:$E$6&”*”)
我们知道,COUNTIF函数的语法:COUNTIF(Range, Criteria),将遍历参数Range指定的区域/数组,统计其中满足参数Criteria指定的条件的数据的数量。在示例中,参数Range的值为:
B3
而参数Criteria指定的值为:
“*”&$E$3:$E$6&”*”
是*与单元格区域E3:E6中单元格值首尾连接。这里插入了通配符“*”,可以匹配含有单元格区域E3:E6中的值的数据。
Excel怎么获取满足多个条件的数值之和
有一组数据,我们想要求出剔除某些数据后余下的数据之和,如下所示,要求数据区域中除代码FA、PD、SS之外的分数之和。 可以使用公式: =SUM(B2:I2)-(SUMIF(B1:I1,'FA',B2:I2) SUMIF(B1:I1,'PD',B2:I2) SUMIF(B1:I1,'SS',B2:I2)) 然而
SUMPRODUCT函数在这里的一个重要作用就是,强制将参数Criteria指定的值转换成数组。然后,COUNTIF函数就在单元格B3中查找前面或者后面与E3:E6中的字符相连的字符出现的次数。
COUNTIF(B3,”*”&$E$3:$E$6&”*”)
可解析为:
COUNTIF(B3, {“*a*”;”*b*”;”*f*”;”*d*”})
可解析为:
COUNTIF(“abcefgh”,{“*a*”;”*b*”;”*f*”;”*d*”})
得到:
{1;1;1;0}
将其传递给SUMPRODUCT函数:
=SUMPRODUCT(COUNTIF(B3,”*”&$E$3:$E$6&”*”))
即:
=SUMPRODUCT({1;1;1;0})
在仅提供给SUMPRODUCT函数一个数组时,将只是简单地将数组中的元素相加,即得到结果:
3
SUMPRODUCT函数基本原理详解
SUMPRODUCT函数返回相应的数组或区域乘积的和。其语法为: SUMPRODUCT(数组1, [数组2], [数组3], …) 其中: 1. 数组1,必需,指定想要相乘并相加的数组数据。 2. 数组2,数组3,…,可选,指定想要相乘并相加的数组数据。数组个数不超过255个。 3. 指定的数组可以是数组、单