2017-01-24 41 views
0

如果列A是「文本1」或「文本2」,我想獲得列C的第二大值。它似乎不斷返回一個錯誤。我曾嘗試:在Excel中使用大函數或帶條件的數組函數

{=large((if(A:A="Text 1",C:C),if(A:A="Text 2",C:C)),2)} 

而且

{=large(if(or(A:A="Text 1",A:A="Text 2"),C:C),2)} 

沒有成功。任何幫助,將不勝感激。

+0

得到它的同REGEXMATCH即工作{=大(如果(REGEXMATCH(A:A, 「文本1 |文本2」),C:C),2)} –

+0

REGEXMATCH ????? – cyboashu

回答

0

就個人而言,爲了效率的原因,我儘量遠離陣列。這裏是你可以用它來找到你所需要的非數組公式的例子:

=AGGREGATE(14,6,(MaxRange)*(CriteriaRange=Criteria),2) 

其中:

14 = Large, to find the maximum value 
6 = Ignore error values - makes only the criteria values applicable 
MaxRange = The range of values you want to pull the 2nd largest from 
CriteriaRange = The criteria range you want to evaluate 
Criteria = The criteria you want to match in the above range 
2 = Specifies the 2nd largest: 1 would be largest etc 

如果你還沒有注意到這一點遵循=SUMPRODUCT的同樣的原則。因此對付多AND標準可以它們相乘,即:

(MaxRange)*(CriteriaRange1=Criteria1)*(CriteriaRange2=Criteria2) 

而且做一個OR條件,你把它們相加:

(MaxRange)*((CriteriaRange1=Criteria1)+(CriteriaRange2=Criteria2)) 

這導致公式中的你是:

=AGGREGATE(14,6,(C:C)*((A:A="Text 1")+(A:A="Text 2")),2)