2016-07-22 25 views
0

我想知道是否有可能對隱式或「嵌套」數組使用SUMIF函數。對於「隱式」數組,我的意思是一個矩陣,其中的數據不是電子表格中任何級別的最終形式,但是它是其他數組的函數。例如,假設我們有等級A1中的一個自變量(其值,所有整數,範圍從0到5)的數據:A100,以及B1:B100中的因變量的數據。使用SUMIF函數我們可以很容易地計算出來,例如,獨立變量爲4時的因變量之和。但是如果我們想要知道因變量的SQUARES的總和,這並不容易,實際上,SUMIF函數給出無論我們如何輸入SUMIF(A1:A100; 4; B1:B100^2),都會出錯(如數組或簡單公式)。在Excel中使用sumif的隱式數組

有沒有辦法做到這一點,而不必浪費列B值的平方整列?我知道,對於這個例子,函數SUMPRODUCT((A1:A100 = 4)* B1:B100^2)會完成這項工作,我不知道如何「嵌套」數組(這是非常有用)。

回答

1

答案是否定的,恐怕。在COUNTIF(S)/SUMIF(S)/AVERAGEIF(S)必須使用的範圍爲下列之一:

1)引用工作表範圍

2)建築業該決心到工作表的引用範圍前者的

一個例子:

=SUMIF(A1:A10,"A",B1:B10)

而後者中的兩個(它恰好是標識符CAL以上):

=SUMIF(A1:INDEX(A:A,10),"A",B1:INDEX(B:B,10))

=SUM(SUMIF(OFFSET(A1,{0,1,2,3,4,5,6,7,8,9},),"A",OFFSET(B1,{0,1,2,3,4,5,6,7,8,9},)))

這裏SUMPRODUCT擁有這組功能的優勢,在結構可以通過它不一定解決到工作表的範圍。

但是,正如您所建議的那樣,通過首先使用工作表中的附加列來計算正方形,然後在SUMIF內引用該列,可以實現更高效的設置,而不是最低限度因爲,SUMIF(s)等可以通過SUMPRODUCT索賠的主要優點之一是可以傳遞任意大的引用而不損害計算性能。例如,在間性能上的差別:

=SUMIF(A:A,"A",B:B)

和:

=SUMPRODUCT(0+(A:A="A"),B:B)

是巨大的,後者具有以處理該範圍內的所有1,048,576細胞(無論它們是在技術上超越最後使用的細胞或不),根本不值得推薦。

Regards