日期范围内日期为文本的数据和数组

时间:2014-06-24 08:58:51

标签: excel excel-formula excel-2007 pivot-table sumifs

我有一个以下格式的Excel表格:

enter image description here

我想使用Excel公式回答以下问题:

  • 迪士尼在11月17日至11月20日期间的总和是多少?

我的尝试 我尝试了以下方法,但未成功:

  1. SUMIFS与数组一起使用:

    =SUMIFS(c4:g8,c3:g3,i1,b4:b8,">="&i2,b4:b8,"<="&i3)

  2. 其中i1包含Disney,i2包含日期格式的17-Nov,而i3包含日期格式的20-Nov

    但这不起作用,因为我们提交的数组必须指定一系列单元格。所以我尝试了以下方法:

    1. SUMIFS与范围:

      一起使用

      =SUMIFS(c4:g8,b4:b8,">="&i2,b4:b8,"<="&i3)

    2. 但这也不起作用,因为我认为我们正在使用><运算符作为文本(表中的日期值)。

      那么,该怎么办? 我应该完全改变表的格式吗?
      我应该将它转换回范围吗?

3 个答案:

答案 0 :(得分:1)

您可以使用IndexMatch选择要汇总的列。

像这样的东西

=SUMIFS(INDEX($B$4:$G$8,,MATCH(I1,$B$3:$G$3)),$B$4:$B$8,">="&I2,$B$4:$B$8,"<="&I3)

您也可以像这样利用表格结构化寻址 (在Excel 2010中测试,因此Excel格式的表格格式可能略有不同)

=SUMIFS(INDEX(MyTable,,MATCH(I1,MyTable[#Headers])),MyTable[Date],">="&I2,MyTable[Date],"<="&I3)

答案 1 :(得分:1)

这就是Sumproduct()的优点。

=SUMPRODUCT($C$4:$G$8*($C$3:$G$3=company)*($B$4:$B$8>=startDate)*($B$4:$B$8<=finishDate))

enter image description here

companystartDatefinishDate是A11,B11和C11的命名单元格。表格和第11行中的日期是实际日期。

如果您将日期存储为文本值,则无法计算日期范围内的数据。日期必须是实际日期。文本不能用于定义日期范围。

答案 2 :(得分:1)

为了获得更大的灵活性,我会考虑“展平”&#39;数据(eg)然后使用数据透视表过滤工具。