SUMIF 不适用于嵌套的 MONTH 或 LEFT 函数



我从以下内容开始:

=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)

最新更新