SUMIF不能与嵌套的MONTH或LEFT函数一起使用

我从下面开始:

=SUMIF(MONTH('Inventory'!K:K),B5,'Inventory'!M:M) 

MONTH('Inventory'!K:K)应该从mm / dd / yyyydate列中返回月份编号(Jan = 1,Feb = 2等),B5保存我想和的月份编号, 'Inventory'!M:M是金额栏。

代替MONTH('Inventory'!K:K)我也尝试了LEFT('Inventory'!K:K, 1) ,没有运气。

我虽然可能MONTHexpression式返回一个值,其中Excel正在寻找一个范围,但我无法find一个解决方法。 试过以下,这也没有工作:

 =SUMIF('Inventory'!K:K,MONTH('Inventory'!K:K)=B5,'Inventory'!M:M) 

虽然一个关键点可以工作,但我希望用户能够添加到“清单”选项卡而不必担心刷新。

在B5中从数字月份创build开始date和结束date,而不是尝试将K列中的date转换为数字月份整数。

 =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旁边创build一个帮助器列'Inventory'!K:K提取月份,然后使用该列编写SUMIF作为范围。

2)使用SUMPRODUCT像这样:

 =SUMPRODUCT((MONTH('Inventory'!K:K)=B5)*'Inventory'!M:M)