【问题标题】:Return Max Value of range that is determined by an Index & Match lookup返回由索引和匹配查找确定的范围的最大值
【发布时间】:2012-08-15 21:48:42
【问题描述】:

我需要一个单元格来显示由索引和匹配公式定义的行的最大值。我知道这将是一个数组函数,但我正在努力使语法正确。这是我的数据的样子。我已经用列字母和行号(如 Excel)对其进行了布局。

使用下表作为参考,在第二个表中。当我在单元格A1 中输入bB1 列中的y 时,单元格C1 中的公式应该返回值35,因为35 是列C:F 中的最大值由A1B1 使用INDEXMATCH 确定的行

表 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

现在...我想做的是创建一个公式,在与AB 中给出的值匹配的行中找到CF 列的最大值一个单独的表。对于此示例,我们将在单元格C1 中编写公式。根据A = b 列和B = y 列(公式告诉我们是4 行)的匹配,公式应该取CF 的最大值。在这种情况下,我想要的值是 35,因为它是 4 行上 4 列 (C:F) 中的最大值。

这是我的第二个表格应该是这样的,公式在行C

表 2。

     A      B      C
1    b      y      35
2    a      x      25
3    b      z      38
4    c      x      22

我试过这个:(公式在表 2 中,因此它没有在公式的匹配部分中明确声明。您还必须熟悉 excel 中的表格才能获得它)

 =INDEX(MAX(Table1[C]:Table1[F]),MATCH([@A]&[@B],Table1[A]&Table1[B],0))

然后我用 Control + Shift + Enter 将它包装起来以排列它。

当我将MAX 函数放入INDEX 的数组部分时,问题似乎出现了。有没有办法解决这个问题?也许我应该使用一组完全不同的函数?

【问题讨论】:

    标签: excel excel-formula max excel-2010 excel-match


    【解决方案1】:

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

    =MAX(IF((A1:A6=A10)*(B1:B6=B10),C1:F6))
    

    快照

    【讨论】:

    • 您可以根据需要使用 INDEX 和 MATCH。这个比 Sid 的建议长,但不需要 CTRL+SHIFT+ENTER....=MAX(INDEX(C1:F6,MATCH(1,INDEX((A1:A6=A10)*(B1:B6=B10),0),0),0))
    • @barryhoudini - =MAX(IF(MMULT((A1:A6=A10)*(B1:B6=B10),1),C1:F6)) 也有效。 MMULT(...,1) 似乎比 INDEX(...,0) 更普遍地使公式成为非数组条目。
    • 派对迟到了——太棒了!我想知道我是否可以根据需要多次扩展它,或者这种方法是否只适用于两个条件? (基本上,我可以做一个这样的公式:=MAX(IF((A1:A6=A10)*(B1:B6=B10)*(C1:C6=C10)*(D1:D6=D10)*(E1:E6=E10),C1:F6))?)
    【解决方案2】:

    您可以在查找最大值时轻松地将匹配类型更改为 1,或者在查找最小值时将匹配类型更改为 -1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 2022-01-04
      • 2018-07-27
      • 2019-12-14
      相关资源
      最近更新 更多