今天说说按条件求和的问题。
如下图,是最近一段时间广大吃瓜群众的吃瓜记录,要根据指定的吃瓜种类,计算出总利润:
方法一:
=SUMIF(A3:A7,G3,D3:D7)
SUMIF的作用是根据指定的条件来求和,第一参数是条件区域,第二参数是指定的条件,第三参数是求和区域。
如果A3:A7单元格中的等于G3单元格的内容,就对D3:D7对应的单元格求和。
方法二:
=SUMIFS(D3:D7,A3:A7,G3)
SUMIFS的作用是根据指定的一个或多个条件来求和。
第一参数是求和区域,后面的参数两两一对,分别是对应的求和区域和求和条件。当所有条件区域都符合指定的条件时,就对求和区域中对应的单元格求和。
方法三:
=SUMPRODUCT((A3:A7=G3)*D3:D7)
SUMPRODUCT的作用是将两组数对应相乘,然后计算乘积之和。
本例中,先使用(A3:A7=G3)判断A列是否等于指定的条件,得到一组逻辑值TRUE或FALSE构成的内存数组。
然后再使用这个内存数组与D3:D7中的数值对应相乘,如果内存数组中的某个元素是TRUE,与D列相乘后仍然是D列的原有数值,否则相乘后是0。最后使用SUMPRODUCT将各个计算结果求和。
方法四:
按住Shift+Ctrl不放,再按回车,输入以下数组公式:
=SUM(IF(A3:A7=G3,D3:D7))
输入时注意不要输入最外层的花括号。
公式中的IF(A3:A7=G3,D3:D7)部分,先使用IF函数对A列的内容与G3进行比较判断,得到一个内存数组结果。如果相同则返回D列对应的数值,否则返回逻辑值FALSE。
最后使用SUM函数,忽略内存数组中的逻辑值进行求和。
方法五:
=DSUM(A2:E7,H2,G2:G3)
DSUM函数用于返回数据库的某列中,满足指定条件的数字之和。
第一参数是构成数据库的单元格区域。
第二参数用于指定要返回哪一列的数据,可以是与数据库区域中相同的列标题,也可以用数字来表示第几列。
第三参数是一组包含给定条件的单元格区域。需要包含一个和数据库区域中相同的列标题以及用于设定条件的单元格。
本例中,第一参数是A2:E7。
第二参数指定的条件字段名称是H2单元格中的“利润”,或者写成4。
第三参数则是G2:G3单元格区域,其中G2的字段标题和数据库中的标题相同,指定的条件就是G3单元格中的“凡凡瓜”。