Excel公式,用于多次出现vlookup的最大值或最小值

时间:2020-10-05 09:35:54

标签: excel

我需要进行复杂的vlookup / maxif类型选择。我的数据如下

Row Col G    Col H   Col I   colJ        col K
1    Bench  Strip   Block   BenchAbove   BenchBelow
2    1       1       4
3    1       1       5
4    1       1       6
5    1       1       7
6    1       1       8
7    8       1       4         ??           ??
8    8       1       5
9    8       1       6
10   8       1       7
11   8       1       8
12   9       1       4
13   9       1       5
14   9       1       6
15   9       1       7

...此列表很长(仅作为示例)

对于(Strip,block)的每个组合,例如说(1,4),都有像1、8和9的长凳。因此,上面8的长凳为1,下面8的长凳为9。我需要确定长凳每排都在上方和下方。 1以上没有板凳,9以下没有板凳。

我不认为vlookup是这里的解决方案。不确定MAX(IF ..)是否可以提供帮助。在第7行上,要获得的最佳公式是1,4。有问题的工作台是8。上面的工作台是1,下面的工作台是9。因此,上面的Col J和Col I需要2个公式。

上述示例数据的预期答案是:

Row Col G    Col H   Col I   colJ        col K
1    Bench  Strip   Block   BenchAbove   BenchBelow
2    1       1       4      -             8 
3    1       1       5      -             8
4    1       1       6      -             8
5    1       1       7      -             8
6    1       1       8      -             8
7    8       1       4      1             9
8    8       1       5      1             9 
9    8       1       6      1             9
10   8       1       7      1             9
11   8       1       8      1             9
12   9       1       4      8             -
13   9       1       5      8             -
14   9       1       6      8             -
15   9       1       7      8             -

2 个答案:

答案 0 :(得分:0)

如果您有Office365,则可以轻松使用MAXIFS(), MINIFS()来获得BenchAboveBenchBelow。试试-

=MAXIFS(A2:A15,B2:B15,B7,C2:C15,C7)
=MINIFS(A2:A15,B2:B15,B7,C2:C15,C7)

enter image description here

编辑:Excel-2016解决方案

尝试以下公式-

=INDEX($A$2:$A$15,AGGREGATE(14,6,ROW($A$2:$A$15)-ROW($A$1)/(($B$2:$B$15=B7)*($C$2:$C$15=C7)),ROW(1:1)))
=INDEX($A$2:$A$15,AGGREGATE(15,6,ROW($A$2:$A$15)-ROW($A$1)/(($B$2:$B$15=B7)*($C$2:$C$15=C7)),ROW(1:1)))

enter image description here

答案 1 :(得分:0)

也许在J2中:

=IFERROR(LOOKUP(2,1/((H$1:H1=H2)*(I$1:I1=I2)),G$1:G1),"-")

K2中:

=IFERROR(INDEX(G3:G$16,MATCH(1,INDEX((H3:H$16=H2)*(I3:I$16=I2),),0)),"-")

enter image description here

但是,我发现您的问题有点令人困惑,因此此答案可能会有所偏离。