我从以下内容开始:
=SUMIF(MONTH('Inventory'!K:K),B5,'Inventory'!M:M)
其中MONTH('Inventory'!K:K)
应该从 mm/dd/yyyy 日期列返回月份数字(Jan=1、Feb=2 等(,B5 保存我要求和的月份数字,'Inventory'!M:M
是一个金额列。
代替MONTH('Inventory'!K:K)
我也尝试了LEFT('Inventory'!K:K, 1)
,但没有运气。
我虽然可能 MONTH 表达式返回了一个 Excel 正在寻找范围的值,但我找不到解决方法。尝试了以下方法,但也没有用:
=SUMIF('Inventory'!K:K,MONTH('Inventory'!K:K)=B5,'Inventory'!M:M)
虽然透视可以工作,但我希望用户能够只添加到"库存"选项卡,而不必担心刷新。
从 B5 中的数字月份创建开始日期和结束日期,而不是尝试将列 K 中的日期转换为数字月份整数。
=SUMIFS('Inventory'!M:M, 'Inventory'!K:K, ">="&date(2017, B5, 1), 'Inventory'!K:K, "<"&date(2017, B5+1, 1))
注意 SUMIFS,而不是 SUMIF;它们的语法略有不同。
或者,使用 SUMPRODUCT。
=SUMPRODUCT((MONTH('Inventory'!K:K)=B5)*('Inventory'!M:M))
您应该使用 SUMPRODUCT 修剪完整的列引用,否则就要做好计算滞后的准备。
=SUMPRODUCT((MONTH('Inventory'!K2:index('Inventory'!K:K, match(1e99, 'Inventory'!K:K)))=B5)*('Inventory'!M2:index('Inventory'!M:M, match(1e99, 'Inventory'!K:K))))
取决于您的需求,但这里有两个选项不限制您一年的月份:
1(在'Inventory'!K:K
旁边创建一个帮助器列以提取月份,然后使用该列作为范围编写SUMIF
。
2(使用这样的SUMPRODUCT
:
=SUMPRODUCT((MONTH('Inventory'!K:K)=B5)*'Inventory'!M:M)