在 excel 中具有最大条件的 Sumproduct

Sumproduct with max condition in excel

我有这个公式,但它不起作用

=SUMPRODUCT(--(NUMBERVALUE(RIGHT(Sheet1!A:A,2))=MAX(NUMBERVALUE(Sheet1!A:A,2))),--(Sheet1!AG:AG=A9),(Sheet1!AA:AA))

我的问题出在 sumproduct 的第一部分数组中

NUMBERVALUE(RIGHT(Sheet1!A:A,2))=MAX(NUMBERVALUE(Sheet1!A:A)))

A 列包含以下类型的值:

Till_Date
2016/10
2016/10
2016/11
2016/11
2016/12
2016/8

等..

对于每一行,如果它是整列中的最后一个月,我想在月份上设置一个条件,所以我的想法是获取右边 2 位数字的最大值,然后为每一行比较右边 2 位数字整列的最大值。

然而还是不行,感觉快要修复了却找不到问题所在

如有任何帮助,我们将不胜感激。

提前致谢

乔治·萨巴格

我不认为你很接近解决方案。

  1. 从“2016/8”开始,您认为最右边的 2 位数字是什么?
  2. 即使是 NUMBERVALUE 也会导致单元格 A1 = "Till_Date" 出现 #VALUE 错误 - 最右边的 2 = "te"
  3. 在您的 MAX(NUMBERVALUE(Sheet1!A:A)) 中,NUMBERVALUE 将导致 A1:A7 中每个单元格出现 #VALUE 错误,因为所有单元格都是文本。所以 MAX 也是 #VALUE 错误。

问题1可以通过计算“/”的位置并取其后的数字来解决。

问题2和3只有排除错误才能解决。但是 IFERRORSUMPRODUCT 生成的矩阵上下文中不起作用。为此,需要一个真正的数组公式。

所以也许

{=SUM(IF(IFERROR(--RIGHT(Sheet1!A:A,LEN(Sheet1!A:A)-FIND("/",Sheet1!A:A)),0)=MAX(IFERROR(--RIGHT(Sheet1!A:A,LEN(Sheet1!A:A)-FIND("/",Sheet1!A:A)),0)),IF(Sheet1!AG:AG=A9,Sheet1!AA:AA)))}

会为你工作。

这是一个数组公式。将其输入到没有大括号的单元格中,然后按 [Ctrl]+[Shift]+[Enter] 确认。大括号将自动出现。

使用整个 Sheet1!A:A 范围,这将是非常糟糕的表现。所以你应该缩小范围。 Sheet1!$A:$A000 例如。与 Sheet1!$AG:$AG000Sheet1!$AA:$AA000.

相同