Excel打印一个特定的数字在其他列的行

我有一个3列和10万行的Excel文件。 我的目标是打印列A的数字,其中列C中的数字是最大的,列B中的数字是大于或等于0.9。 像这样的例子:

-----+------+----- A | B | C -----+------+----- 1 | 0.9 | 130 2 | 0 | 200 3 | 0.95 | 90 

在这个例子中,例如它应该打印“1”,因为第1列和第3列高于0.9,而第1列高于第3列。无论如何在Excel中这样做?

假设C列中的数据是正数(或者至less是最大值是正数),那么可以使用这个数组公式:

 = INDEX(A:A,MATCH(LARGE(((B:B>=0.9)+0)*(C:C),1),((B:B>=0.9)+0)*(C:C),0)) 

注意这是一个数组公式,所以你必须在公式中input后按Ctrl + Shift + Enter

这是非常丑陋的,因为没有=MAXIFS()公式。 相反,一个数组公式会做诀窍:

 =SUMIFS(A1:A3, C1:C3,MAX(IF(B1:B3>=0.9, C1:C3, 0)), B1:B3,">=.9") 

input时按Ctrl + Shift + Enter,这样Excel将解释为一个数组公式。

Sumifs()这里没有Sumifs()一个以上的值,所以不用担心。 我们抓取A1:A3的值,其中C1:C3等于该列的MAX() ,其中B1:B3大于或等于.9 。 哪个解决了max()问题。 然后我们只允许selectA1:A3 ,其中B1:B3大于或等于.9

这不是很好,它需要我们检查两次,但它做的工作。

尝试使用这个数组formula =SUMPRODUCT(INDEX(A2:A20,MATCH(MAX(--($B$2:$B$20>=0.9)*C2:C20),--($B$2:$B$20>=0.9)*C2:C20,0),1)) 。 用CTRL+SHIFT+ENTER

在这里输入图像说明

这是数组公式(意味着你必须点击Ctrl + Shift + Enter )我想出了:

 =INDEX(A:C,MATCH(MAX(--(B:B>=0.9)*(C:C)),(B:B>=0.9)*(C:C),0),1) 

请注意,我使用了整个色谱柱,但我build议只使用更快的速度所需的范围。