天气

sumproduct多条件求和


   提起单条件求和,我们会想到sumif,而提起条件求和计数,sumproduct是我们最常用到的。对于大部分同学只是会套用公式,而我们今天要揭开它的运算原理。

   :如下图所示,要求在C10单元格根据“产品”和“型号”两个条件,统计销售总数量。

   公式

      =SUMPRODUCT((A3:A7=A10)*(B3:B7=B10)*C3:C7)

   公式解析:

      1 首先我们先抛开sumproduct函数,看看括号内是怎么运算的。

        (A3:A7=A10) 是一组数和一个数比较,昨天已介绍,如果一组数分别和一个数进行运算,属数组运算,会返回多个运算后的结果。即:

         {TRUE;FALSE;TRUE;FALSE;TRUE}

         TRUE说明二者相等,FALSE说明不相等

        同理(B3:B7=B10)也会返回一组对比的结果

         {TRUE;FALSE;FALSE;FALSE;TRUE}

        如果两组数方向是一样的(同是一行或一列),两组数会一一对应的计算。

   而TRUE在进行四则运算时会当作1,FALSE当作0来运算,即

      TRUE*TRUE=1*1=1 TRUE*FALSE=1*0=0 FALSE*FALSE=0*0=0

      {TRUE;FALSE;TRUE;FALSE;TRUE} *{TRUE;FALSE;FALSE;FALSE;TRUE}

      的结果是:{1;0;0;0;1}

      就本例,也就是说,如果两个条件同时满足,两组相乘的结果是1,如果无法同时满足两个条件,计算的结果就是0.

      继续,当{1;0;0;0;1}*C3:C7 时,同样也会一对一进行相乘。结果变成

        {2;0;0;0;8}

      由此,我们用两个对比条件和求和区域相乘,符合条件的数量保留,不符合的变成了0,剩下的就是对符合条件的数进行求和。

     2 对一组求和本是SUM函数的专享,但由于本公式是数组运算,所以我们需要按ctrl+shift+enter三键输入该公式才能得到正确的结果。如果不想用数组形式输入,可以用sumproduct函数来完成本例最后的求和。

     Sumproduct函数是矩阵求和,说白了就是一组数和另一组或几组相乘,然后再求和。如

     =SUMPRODUCT({1;2;3},{10;20;30})运算的过程是

      =1*10+2*20+3*30 结果为 140

    而如果sumproduct的参数只有一组时,就只是求和了。如

     =SUMPRODUCT({1;2;3})

      =1+2+3 结果是6

    本例中,我们用sumproduct({2;0;0;0;8})即可完成该组数的相加,

     =2+0+0+0+8

    总结:由上述分析,我们可以看出sumproduct函数其实只是完成求和工作而已,和sum函数不同的是:它可以直接求和,而sum参数数组运算时,需要用数组形式输入。

标签:excel
分类:Excel学习| 发布:admin| 查看: | 发表时间:2014/1/23
原创文章如转载,请注明:转载自个人资讯网 http://www.zhangxinran.com/
本文链接:http://www.zhangxinran.com/post/750.html

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Design By zhangxinran.com | Login | Power By zhangxinran.com | 皖公网安备:34010402701072号