一、SUMPRODUCT
- 1.定义及表达式
在给定的数组中,将数组对应的元素相乘,并返回乘积之和。
sumproduct(array1,array2,...)
说明数组参数必须具有相同的维数,否则将返回错误值VALUE;函数将非数值型的数组元组作为0处理。 - 2.实例
例1:D2=SUMPRODUCT(B2:B19,C2:C19)
例2:同上图片。
D3==SUMPRODUCT((A2:A19="铅笔")C2:C19) (1)
或D3==SUMPRODUCT(--(A2:A19="铅笔"),B2:B19) (2)
(1)的表达式,参数是用“”分隔开的。如果将其换乘逗号,结果为0.因为A2:A19存放的是文本,被当做0处理。
公式2前面加了两个负号,目的是将文本格式转换成数值格式。
一些Excel高手往往将文本格式转换成数值格式,就将文本格式字符进行+0,-0,x1处理,因为文本格式执行数学运算就能转换成数字格式[(A2:A19="铅笔")x1,先转换成逻辑型false&true。逻辑型与数值型运算时,false=0,ture=1。]文本本身是不能能进行数学运算(加减乘除等运算,不包括A2:A19="铅笔"此类运算。在sumproduct中,一个数组仅为A2:A19="铅笔"时,值为0),但sumproduct中数组中有文本会当做0处理,这样就达到转换的目的.上述--表示减负操作,相当于0-(-文本格式)根据负负得正原理,文本格式就转换成数值格式了。同理,上述也可改写成D3==SUMPRODUCT((A2:A19="铅笔")*1,B2:B19) 或D3==SUMPRODUCT((A2:A19="铅笔")+0,B2:B19)
结合之前的sumif函数D3=SUMIF(A2:A19,"铅笔",B2:B19)结果相同,都属于条件求和
二、SUBTOTAL
- 1.定义及表达式
subtotal(function_num,ref1,ref2,...)
功能:返回列表或数据库中的分类汇总。通常,使用“数据”菜单中的“分类汇总”命令可以容易地创建带有分类汇总的列表,一旦创建了分类汇总,就可以通过编辑subtotal函数对该列进行修改。
参数含义:function_num为1到11(包含隐藏值)或101到111(忽略隐藏值)之间的数字,制定使用何种函数在列表进行分类汇总计算。
ref:如果在ref1,ref2,...中有其他的分类汇总(嵌套分类汇总),将忽略这些嵌套分类汇总,以避免重复计算
当function_num为从1到11的常数时,subtotal函数将包括通过“格式”菜单的“行”字菜单下面隐藏命令所隐藏的行中的值,当要分类汇总列表中的隐藏和非隐藏值时,请使用这些常数,否则使用101到111.(1或101对应average函数,9或109对应sum函数,其他略)
subtotal函数忽略任何不包括在筛选结果中的行,不论使用什么function_num值。
subtotal适用于数据列或垂直区域,不适用于数据行或水平区域。例如,当function_num值大于或等于101时需要分类汇总某个水平区域时,例如subtotal(109,A2:G2),则隐藏某一列不影响分类汇总,但隐藏分类汇总的垂直区域中的某一行就会对其产生影响。
如果所指定的某一引用为三维引用,将返回错误值 -
2.实例