从最大值行检索列标题

时间:2018-11-22 11:36:36

标签: excel excel-formula

我有两个电子表格,一个电子表格包含一个数据库(第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

除非我知道我要与工作表2匹配的ID位于工作表1上,否则我似乎无法在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,然后返回标题与相应的年份? 预先感谢。

2 个答案:

答案 0 :(得分:1)

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

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

enter image description here

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

enter image description here

答案 1 :(得分: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未排序时,这也将起作用。
我将所有数据放在同一工作表上进行测试,因此您只需要更改引用即可。