Excel公式到SUMIFdate在特定的月份

我有以下格式的excel数据。

Date Amount 03-Jan-13 430.00 25-Jan-13 96.00 10-Jan-13 440.00 28-Feb-13 72.10 28-Feb-13 72.30 

只有当月份在月份月份时,我需要总计金额字段。

我所尝试的是,

 =SUMIF(A2:A6,"MONTH(A2:A6)=1",B2:B6) 

但是它回来了,

 0 

我需要的是,

 Following values to be summed, 430.00 + 96.00 + 440.00 = 966.00 

试试这个:

  =SUM(IF(MONTH($A$2:$A$6)=1,$B$2:$B$6,0)) 

这是一个数组公式,所以你需要用ControlShiftEnter组合 input

以下是公式的工作原理。

  1. MONTH($ A $ 2:$ A $ 6)为A2:A6中的date创build一个月份数值的数组,
    {1, 1, 1, 2, 2}
  2. 然后比较{1, 1, 1, 2, 2}= 1产生包含IF语句条件的数组{TRUE, TRUE, TRUE, FALSE, FALSE}
  3. IF语句然后返回值的数组,其中月份值等于1和..0,0}的总和范围的值为..0,0} ,其中月份值不等于1。
  4. 然后将该数组{430, 96, 400, 0, 0}加以得到您正在查找的答案。

这基本上等同于SUMIF和SUMIF函数的作用。 但是,这些函数都不支持您试图在条件中包含的那种计算。

完全放弃IF也是可能的。 由于TRUE和FALSE也可以被视为1和0,所以这个公式 – =SUM((MONTH($A$2:$A$6)=1)*$B$2:$B$6)也起作用。

单挑:这在Google电子表格中不起作用

 =Sumifs(B:B,A:A,">=1/1/2013",A:A,"<=1/31/2013") 

这个公式的优点是你可以添加更多的数据到列A和B,它只是重新计算。

 =SUMPRODUCT( (MONTH($A$2:$A$6)=1) * ($B$2:$B$6) ) 

说明:

  • (MONTH($A$2:$A$6)=1)创build一个1和0的数组,当月份是一月份时是1,因此在你的例子中返回的数组是[1, 1, 1, 0, 0]

  • SUMPRODUCT首先将上一步创build的数组的值与数组的值($B$2:$B$6)相乘,然后将它们相加。 因此在你的例子中它是这样做的: (1 * 430) + (1 * 96) + (1 * 440) + (0 * 72.10) + (0 * 72.30)

这也适用于OpenOffice和Google Spreadsheets