我有一个以下格式的Excel表格:
我想使用Excel公式回答以下问题:
我的尝试 我尝试了以下方法,但未成功:
将SUMIFS
与数组一起使用:
=SUMIFS(c4:g8,c3:g3,i1,b4:b8,">="&i2,b4:b8,"<="&i3)
其中i1包含Disney
,i2包含日期格式的17-Nov
,而i3包含日期格式的20-Nov
。
但这不起作用,因为我们提交的数组必须指定一系列单元格。所以我尝试了以下方法:
将SUMIFS
与范围:
=SUMIFS(c4:g8,b4:b8,">="&i2,b4:b8,"<="&i3)
但这也不起作用,因为我认为我们正在使用>
,<
运算符作为文本(表中的日期值)。
那么,该怎么办?
我应该完全改变表的格式吗?
我应该将它转换回范围吗?
答案 0 :(得分:1)
您可以使用Index
和Match
选择要汇总的列。
像这样的东西
=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))
company
,startDate
和finishDate
是A11,B11和C11的命名单元格。表格和第11行中的日期是实际日期。
如果您将日期存储为文本值,则无法计算日期范围内的数据。日期必须是实际日期。文本不能用于定义日期范围。
答案 2 :(得分:1)
为了获得更大的灵活性,我会考虑“展平”&#39;数据(eg)然后使用数据透视表过滤工具。