返回由索引和匹配查找确定的范围的最大值

Ash*_*ets 7 excel max excel-formula excel-2010 excel-match

我需要一个单元格来显示一个范围的最大值,该范围的行由索引和匹配公式定义.我知道这将是一个数组函数,但我正在努力使语法正确.这是我的数据的样子.我把它列在列字母和行号上,就像Excel一样.

使用下表作为参考,在第二个表中.当我b在单元格A1y列中输入时,单元格中B1的公式C1应返回该值,35因为35C:F由行确定A1B1使用INDEX和的行中的列中的最大值MATCH

表格1.

     A      B      C     D     E     F
1    a      x      25    6     23    11
2    a      y      39    15    42    19
3    b      x      28    34    51    24
4    b      y      27    19    15    35
5    b      z      38    26    12    18
6    c      x      12    19    22    15
Run Code Online (Sandbox Code Playgroud)

现在...我想要做什么,是创建认定列的最大一个公式C,通过F在匹配值的行中AB了在一个单独的表中给出.对于此示例,我们将在单元格中编写公式C1.公式应以最大的C通过F基于匹配列的A = b和列B = y(其中公式告诉我们是排4).在这种情况下我想要的值是35因为它是C:F行上4列()的最大值4.

这是我的第二个表应该与公式在行中的样子 C

表2.

     A      B      C
1    b      y      35
2    a      x      25
3    b      z      38
4    c      x      22
Run Code Online (Sandbox Code Playgroud)

我试过这个:(公式在表2中,所以它没有在公式的匹配部分中显式声明.你还必须熟悉excel中的表才能得到它)

 =INDEX(MAX(Table1[C]:Table1[F]),MATCH([@A]&[@B],Table1[A]&Table1[B],0))
Run Code Online (Sandbox Code Playgroud)

然后我用Control+ Shift + Enter 将它包装到Array它.

当我把MAX函数放在数组部分中时,问题似乎就出现了INDEX.这有什么办法吗?也许我应该使用一组完全不同的功能?

Sid*_*out 13

您不需要索引匹配公式.您可以使用此数组公式.输入公式后,您必须按CTL+ SHIFT+ ENTER.

=MAX(IF((A1:A6=A10)*(B1:B6=B10),C1:F6))
Run Code Online (Sandbox Code Playgroud)

快照

在此输入图像描述

  • 如果需要,可以使用INDEX和MATCH.这个比Sid的建议长,但不需要CTRL + SHIFT + ENTER ....`= MAX(INDEX(C1:F6,MATCH(1,INDEX((A1:A6 = A10)*(B1:B6 = B10),0),0),0))` (5认同)