【问题标题】:retrieve column header from max value row从最大值行检索列标题
【发布时间】:2018-11-22 11:36:36
【问题描述】:

我有两个电子表格,一个包含数据库(工作表 1),另一个(工作表 2)我想检索包含行之间最大值的列的标题,给定特定的 ID。

表 1:

       A        B       C        D         E
   1  ID       2020    2021      2022      2023
   2  N-16     0,00    1550,00   1750,00   2200,00  
   3  N-23     0,00    0,00      0,00      20010,00
   4  N-53    100,00   60,00     20,00     80,00

表 2:

       A         B           C                 
   1  ID       Max Value    Year
   2  N-53     100,00       
   3  N-16     2200,00      
   4  N-23     20010,00     

但它应该是这样的:

       A         B           C                 
   1  ID       Max Value    Year
   2  N-53     100,00       2020
   3  N-16     2200,00      2023
   4  N-23     20010,00     2023

除非我知道我想从 sheet2 匹配的 ID 位于 sheet1 的哪一行,否则我似乎无法在 C 列上获得年份。由于此数据库不断更新,因此 ID 是随机顺序的。

=INDEX(Sheet1!$B$1:$E$1;MATCH(MAX(INDEX((Sheet1!$A$2:$A$4=$A2)*Sheet1!$B$2:$E$4;0));Sheet1!$A$4:$E$4;0))

有没有办法可以修改公式的最后一部分以查找 sheet1 上的每一行,从 sheet2 中找到匹配的 ID,在 sheet1 上查找具有匹配 ID 的行并找到 Max Value,然后返回标题与相应的年份? 提前致谢。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    你可以使用这个数组公式:
    {=INDEX($B$1:$E$1;1;MATCH(MAX(INDEX(($A$2:$A$4=$A13)*$B$2:$E$4;0));OFFSET($B$2:$E$4;MATCH(A13;$A$2:$A$4;0)-1;0;1;);0))}

    我保留了您的大部分公式,但您的 MATCH 的查找数组是使用 OFFSET 函数计算的。当 ID 未排序时,这也将起作用。
    我将所有数据放在同一个工作表中进行测试,因此您只需更改引用即可。

    【讨论】:

      【解决方案2】:

      我没有分成两页,但方法应该类似于你想要的。 我已根据您的建议更改了公式。

      =MAX(INDEX($B$2:$E$4;MATCH(A8;$A$2:$A$4;0);0))
      

      =INDEX($B$1:$E$1;MATCH(B8;INDEX($B$2:$E$4;MATCH(A8;$A$2:$A$4;0););0))
      

      【讨论】:

      • 您好,感谢您的回答,但这不是我所需要的。我不知道 ID 将在 sheet2 上的哪一行,这就是为什么我不能像您的示例中那样放置 A2:E2 的原因。例如,N-16 可能在 A3 或 A4 上,所以如果我做 MATCH(B8,A2:E2)),它将不起作用。
      • 干杯@Garry的学生
      猜你喜欢
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      相关资源
      最近更新 更多