excel公式根据条件

时间:2018-04-06 21:27:50

标签: excel filter excel-formula formula

我有一个奇怪的问题,我一直试图在过去的几个小时内找到一个好的解决方案。我在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范围:

  • A = 2011
  • B<大于0
  • C = 1

对于上述一组条件和数据,我想要回答的答案是4,来自E3。

我并不反对在合理范围内添加辅助列,但是还有更多的过滤条件集,这是我拼凑在一起的其他一些解决方案的撤消;我试图为此开发此组的组不会接受16-32个辅助列。

1 个答案:

答案 0 :(得分:2)

如果您的版本支持较新的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)

enter image description here