Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vlookup多次出现的最大或最小值的Excel公式_Excel - Fatal编程技术网

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

vlookup多次出现的最大或最小值的Excel公式,excel,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

我需要做一个复杂的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
…此列表很长(仅为示例)

对于像(1,4)这样的(条带、块体)的每个组合,都有像1、8和9这样的长凳。8上面的台阶是1,8下面的台阶是9。我需要为每行确定上面和下面的工作台。没有高于1的工作台,也没有低于9的工作台

我不认为vlookup是这里的解决方案。不确定MAX(如果…)是否能帮上忙。获得的最佳公式是什么?比如第7行,区块组合为1,4。有问题的法官是8名。上面的台阶是1,下面的台阶是9。因此,上述第J列和第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             -

如果您有
Office365
,那么您可以使用
MAXIFS()、MINIFS()
轻松获取
BenchAbove
BenchBelow
。试一试-

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

编辑: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)))

可能在
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)),"-")


但是,我发现您的问题有点让人困惑,所以这个答案可能有点离题。

您使用哪种版本的excel?使用excel 2016谢谢您的及时回复。我使用Excel 2016,尝试了公式,但不起作用,我得到了#NAME。Excel 2016中是否有相应的内容感谢您Harun修改后的回复。对不起,我没有得到想要的答案。我试过=指数($G$2:$G$30000,合计(14,6,行($G$2:$G$30000)-行($A$1)/($H$2:$H$30000=H2)*($I$2:$I$30000=I2)),行(1:1)))我的板凳数据是G列,H列上的条带和I列上的块。我做对了吗?对不起,我可能没有在问题中澄清它,我需要每一排的长凳和长凳,而不仅仅是第7排。只有对于工作台1,上面的工作台不存在,而对于工作台9,下面的工作台不存在there@Ranajit只需调整如下公式:
=索引($G$2:$G$30000),聚合(14,6,行($G$2:$G$30000)-行($A$1)/($H$2:$H$30000=H2)*($I$2:$I$30000=I2)),行($1:$1)))
通过此更改,我的所有行都有相同的答案或9和1。您好,谢谢您的答案,但它不起作用。我发现你的公式中没有使用H列和I列。有可能包括它们吗。我正在为每一组I,J组合寻找下一个(更高和更低)列G。例如(1,4)是一个组合。在我给出的数据中,其他组合可以是(1,5)、(1,6)等。我在真实数据中还有其他几行。因此,如果您要在excel中筛选列H=1和列I=4,您将得到列G中的以下1,8,9。因此,8上方的行位置为1,8下方的行位置为9。它与+1或-1无关。感谢you@Ranajit,我编辑了我的答案,因为它现在更清晰了。看看这是否适合你。谢谢你编辑的回复,它工作得很好。除了最后一行-但没关系,我可以手动管理它。非常感谢您的支持help@Ranajit,请看我在示例中是如何引用第16行而不是第15行来实现这一点的?此外,如果它回答了您的问题,请单击答案左侧的复选标记接受答案