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)}
沒有成功。任何幫助,將不勝感激。
如果列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)}
沒有成功。任何幫助,將不勝感激。
就個人而言,爲了效率的原因,我儘量遠離陣列。這裏是你可以用它來找到你所需要的非數組公式的例子:
=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)
得到它的同REGEXMATCH即工作{=大(如果(REGEXMATCH(A:A, 「文本1 |文本2」),C:C),2)} –
REGEXMATCH ????? – cyboashu