在Excel中使用大函数或在数组函数上使用条件

时间:2017-01-24 03:59:26

标签: arrays excel

如果列A是"文本1"我试图获得列C的第二大值。或"文字2"。它似乎不断返回错误。我试过了:

{=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)}

没有成功。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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)