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)