基于最大值和小于的数组?

array based on max and less than?

我不确定我是否把这个复杂化了... 基本上我想要一个公式 如果c列小于6,则查找B中的最大值,但显示C的值

到目前为止我有这个,但我希望它显示 2,而不是 437

{=MAX(IF(C2:C12<6,B2:B12, 0))}

如有任何建议,我们将不胜感激。我很害羞,乖一点..谢谢

A       B       C 
cat     110     3
dog     148     4
rooster  36     7
duck     32     8
pig     437     2
horse    44     6
eagle   215     5
dolphin  21     1
panda     2     9
iguana  257    10
fish    199    11

编辑:

也许是这样的 {=INDEX(C2:C12,MATCH(MAX(IF(C2:C12<6,C2:C12)),C2:C12,0))}

但我不知道该放在哪里b2:b12

你快到了.. 基本上如果 C<6 ,找到 B 的最大值,在 B:C 中查找它并显示相应的 C

{=IFERROR(VLOOKUP(MAX(IF(C2:C12<6,B2:B12, 0)),B2:C12,2,FALSE),0)}

由于您的问题没有阐明如果 c>=6 怎么办,我假设您不想要价值。 说清楚就可以回答得更准确

如果正确,请将此标记为答案。 希望这对您有所帮助!

{=IF(C2<6,INDEX($C:$C,MATCH(MAX($B:$B),$B:$B,0)),0)}

你真的需要两个条件

1) B 列等于 =MAX(IF(C2:C12<6,B2:B12))

2) C 列是 <6

所以你可以 INDEX 当满足这两个条件时,C 列,即

=INDEX(C2:C12,MATCH(1,(B2:B12=MAX(IF(C2:C12<6,B2:B12)))*(C2:C12<6),0))

通过 CTRL+SHIFT+ENTER

确认

正如我所见,您请求了一个 INDEX 公式:

{=INDEX($C:$C,MATCH(MAX(IF($C:$C<6,$B:$B,0),0),IF($C:$C<6,$B:$B,0),0))}

这是一个数组公式,按Ctrl+Shift+Enter同时还在公式栏。

让我们分解一下。

=INDEX(C:C, - 索引列 C,因为这些是您想要的值 returned

MATCH(IF(C:C<6,B:B,0), - 从数组中的以下数组中找到最大值 return 它是 INDEX()

的相对位置

IF(C:C<6,B:B,0),0)) - 如果 c 列的值小于 6,则将 B 列的值添加到数组中,否则添加 0