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议只使用更快的速度所需的范围。