Excel SUMPRODUCT 函数应用 SUMPRODUCT 是一个很特别的公式,表面的作用跟我们平常用的这函数的目的不大一样。特别是在2003 版或以前的Excel 中,还没有SUMIFS, COUNTIFS的功能(就是多条件的SUMIF 和 COUNTIF),就是在2007 版以后,多了SUMIFS,COUNTIFS这两个函数,还是有学习这个函数的意义的。典型的脑子转个弯,就可以达到不同效果。 用途: 给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。比如说第一个数组是{1,2,3}, 第二个数组是{6,7,8}, SUMPRODUCT 会把两个数组相对应的值相乘,就是 1*6, 2*7, 3*8,然后把结果相加,就是 1*6 + 2*7 + 3*8。 语法: SUMPRODUCT(数组1,数组2,数组3,...) 数组1/数组2/数组3 等 是需要进行相乘并求和的数组,一般是单元格范围的索引。需要注意的是所有数组内的元素数目必须相同,如果是单元格范围,每个单元格范围的大小必须相同。 例子: A B C D 1 1 5 9 2 2 2 6 10 4 3 3 7 a 5 4 4 8 b 7 公式 结果 解释 =SUMPRODUCT(A1:A4,B1:B4) 70 两个数组的所有元素对应相乘,然后把乘积相加,即 1*5 + 2*6 + 3*7 + 4*8。 =SUMPRODUCT(A1:A4,C1:C4) 29 非数值型会被视同为 0 处理,所以是 1*9 + 2*10 + 3*0 + 4*0。 =SUMPRODUCT(A1:A4,B1:B4,C1:C4) 165 三个数组的所有元素对应相乘,然后把乘积相加,即 1*5*9 + 2*6*10 + 3*7*0 + 4*8*0。(把非数值视同 0 ) =SUMPRODUCT(A1:B4,B1:C4) 175 多行/列数据也是可以用SUMPRODUCT 的, 等于 1*5 + 2*6 + 3*7 + 4*8 + 5*9 + 6*10 + 7*0 + 8*0。 =SUMPRODUCT(A1:A4,B1:B3) #VALUE! 数组的个数不一样,返回错误值#VALUE!。 =SUMPRODUCT(A1:A4,A1:D1) #VALUE! 数组的个数一样,可是形状(行数和列数)不一样,同样返回错误值#VALUE!。 =SUMPRODUCT({1,2,3,4},{5,6,7,8}) 70 直接输入数组也可以使用这个函数。(不过一般这样用比较少) =SUMPRODUCT({1,2,3,4},A1:D1) 46 这个就用的比较多了。如果一个数组是固定的值,可以考虑直接输在公式中。 =SUMPRODUCT({1,2,3,4},A1:A4) #VALUE! 把行变成列就不行了。这是因为形状不一样。在数组中,逗号是视同为新的一列,分号才是新的一行。 比如A1 到 C2 单元格,如果用数组直接列出他们的值,就是{1,5,9;2,6,10}。 一行一行的列出,每一行用分号区分,同一行的不同单元格...