Excel公式到SUMIF日期特定于月份

时间:2013-03-08 01:54:04

标签: 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

我只需要在月份位于 Jan 月份时对金额字段求和。

我试过的是,

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

但它回来了,

0

我需要的是,

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

3 个答案:

答案 0 :(得分:56)

请改为尝试:

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

这是一个数组公式,所以你需要输入 Control - Shift - Enter 组合键。

以下是该公式的工作原理。

  1. MONTH($ A $ 2:$ A $ 6)为A2中的日期创建一个月份数值值:A6,即{1, 1, 1, 2, 2}
  2. 然后比较{1, 1, 1, 2, 2}= 1生成数组{TRUE, TRUE, TRUE, FALSE, FALSE},其中包含IF语句的条件。
  3. IF语句然后返回一个值数组,其中{430, 96, 400..表示月份值等于1的和范围的值,..0,0},其中月份值不等于1。
  4. 然后将该数组{430, 96, 400, 0, 0}求和以得到您正在寻找的答案。
  5. 这基本上等同于SUMIF和SUMIFs函数的功能。但是,这些函数都不支持您尝试包含在条件中的计算类型。

    也可以完全放弃IF。由于TRUE和FALSE也可以被视为1和0,因此该公式 - =SUM((MONTH($A$2:$A$6)=1)*$B$2:$B$6) - 也可以。

    抬头:这在Google电子表格中不起作用

答案 1 :(得分:24)

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

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

答案 2 :(得分:16)

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

说明:

  • (MONTH($A$2:$A$6)=1)创建一个1和0的数组,当它的时候它是1 月份是一月,因此在您的示例中,返回的数组将是[1, 1, 1, 0, 0]

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

这也适用于OpenOffice和Google Spreadsheets