我們經常需要基于一個或者多個條件進行求和。例如,下面的數組公式返回名為Data范圍中正數(不包含負數)的和:
{=SUM(IF(Data>O,Data))}
IF函數創建一個新數組,它只包含正數和False值。這個數組傳遞給SUM函數,該函數忽略False值并且返回正數之和。Data范圍可以包含任何數目的行和列。
對于本例,也可以使用Excel的SUMIF函數。下面的公式不是一個數組公式,它返回與前面數組公式相同的結果:
=SUMIF(Data,">0")
然而,對多項條件使用SUMIF會有更多的訣竅。例如,如果我們希望只對大于0和小于等于5的數值求和,可以使用這樣的非數組公式:
=SUMIF(data,">O",data)-SUMIF(data,">5",data)
這個公式先對大于零的數求和,然后減去大于5的數之和。這也許會引起混淆。
下面的數組公式執行了相同的計算:
{=SUM((Data>O)*(Data<=5)*Data)}
這個公式也有一個限制,如果Data范圍包含一個或者多個非數值單元格的話,它會返回個錯誤。
也可以寫出一個數組公式,它綜合了使用OR條件的標準。例如,求小于0或者大于5的數值之利,使用下面的數組公式:
{=SUM(IF((Data<O)+(Data>5),Data))}