我有一个奇怪的问题,我一直试图在过去的几个小时内找到一个好的解决方案。我在Excel中有一个类似于以下内容的表:
|A B C D E F
-----+-----+-----+-----+-----+-----+-----
1 |2011 1 0 -5 4 2
2 |2011 2 1 1.2 2 3
3 |2011 3 1 2 4 -4
4 |2011 0 1 -3 3 -2
5 |2012 5 1 0 0 1
6 |2012 0 1 0.25 0 0
根据列A-C,数据分为不同的类别,列D-F为美元金额。
我想弄清楚的是,有没有办法使用A-C列中的值作为过滤值,为这些行的子集返回列D-F的最大绝对值?现在,我知道如何返回范围的最大绝对值:=max(abs(START:END))
,但我不知道该怎么做是根据列A-C值过滤掉范围中的一些行。
也许是我正在寻找的具体例子:
我如何得到D-F范围:
对于上述一组条件和数据,我想要回答的答案是4,来自E3。
我并不反对在合理范围内添加辅助列,但是还有更多的过滤条件集,这是我拼凑在一起的其他一些解决方案的撤消;我试图为此开发此组的组不会接受16-32个辅助列。
答案 0 :(得分:2)
如果您的excel版本支持较新的MAXIFS function,请将其与ABS功能和MINIFS function一起使用。
=max(maxifs(d:f, a:a, 2011, b:b, "<>", c:c, 1), abs(minifs(d:f, a:a, 2011, b:b, "<>", c:c, 1)))
如果没有,那么AGGREGATE将提供条件。
=AGGREGATE(14, 6, ABS(D1:F6)/((A1:A6=2011)*(B1:B6<>0)*(C1:C6=1)), 1)