date范围内数据的总和,其中date是文本
我有一个以下格式的Excel表格:
我想用Excel公式回答以下问题:
- 迪斯尼在11月17日至11月20date间的总和是多less?
我尝试了下面的方法,失败了:
-
对数组使用
SUMIFS
:=SUMIFS(c4:g8,c3:g3,i1,b4:b8,">="&i2,b4:b8,"<="&i3)
其中i1包含Disney
,i2包含date格式的17-Nov
,i3包含date格式的20-Nov
。
但是这不起作用,因为我们正在提交一个数组,我们必须指定一个单元格范围。 所以我尝试了以下方法:
-
使用
SUMIFS
的范围:=SUMIFS(c4:g8,b4:b8,">="&i2,b4:b8,"<="&i3)
但是,这也不起作用,因为我认为我们正在使用>
, <
运营商的文本(表中的date值)。
那么该怎么办?
我应该完全改变表格的格式吗?
我应该把它转换回范围?
您可以使用Index
和Match
来select要求和的列。
像这样的东西
=SUMIFS(INDEX($B$4:$G$8,,MATCH(I1,$B$3:$G$3)),$B$4:$B$8,">="&I2,$B$4:$B$8,"<="&I3)
您也可以像这样利用表结构化地址
(在Excel 2010中进行了testing,因此Excel 2007中的表格格式可能略有不同)
=SUMIFS(INDEX(MyTable,,MATCH(I1,MyTable[#Headers])),MyTable[Date],">="&I2,MyTable[Date],"<="&I3)
这就是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行的date是真正的date。
如果将date存储为文本值,则无法计算date范围内的数据。 date需要是真正的date。 文字不能用来定义date范围。
为了更大的灵活性,我会考虑“压扁”数据( 例如 ),然后使用数据透视表过滤设施。