如工作中我們會按照日、周、月、年等形式來統(tǒng)計各類數據,然后會在一種匯總表中對所有sheet頁中統(tǒng)計的數據進行平均或者求和匯總。本節(jié)將會講解怎么用函數來進行跨sheet指定條件求和。下節(jié)課將會講解如何使用函數進行跨sheet指定條件求平均。
我們都知道條件求和函數sumif,但是此函數只能使用單一條件,sumfis可以使用多條件求和,但是當條件過多時函數會顯的特別長。如何避免這些問題,下面將引入一種新的函數INDIRECT引用函數。
條件求和函數:
=SUM(SUMIF(INDIRECT(ROW($1:$12)&'!B:B'),$B3,INDIRECT(ROW($1:$12)&'!F:F')))
此處思路與sumif條件求和一樣,運用函數嵌套,使用indirect函數引用出各月條件區(qū)域,當sumif函數條件符合時引用出各月條件求和區(qū)域。
函數解析:
1、ROW($1:$12):引用各sheet頁下標數字,1-12個月。
2、SUMIF(INDIRECT(ROW($1:$12)&'!B:B'),$B3,INDIRECT(ROW($1:$12)&'!F:F')):此處函數主要為引用出各月符合條件$B3的數據。選擇這個函數區(qū)域按F9我們可以看到以下內容:
3、因為sumif與Indirect函數引用的函數是個月符合條件的數值,是以數組形式體現的。所以最后使用SUM對數組求和的時候需要使用:ctrl+shift+enter三鍵求組。
與求和類似,averageif的條件區(qū)域去條件值在這里我們同樣使用indirect進行引用。
條件區(qū)域:INDIRECT(ROW($1:$12)&'!B:B')
條件參數值:INDIRECT(ROW($1:$12)&'!F:F')
條件求和函數:
=AVERAGE(IFERROR(AVERAGEIF(INDIRECT(ROW($1:$12)&'!B:B'),$B3,INDIRECT(ROW($1:$12)&'!F:F')),''))
函數解析:
1:AVERAGEIF(INDIRECT(ROW($1:$12)&'!B:B'),$B3,INDIRECT(ROW($1:$12)&'!F:F')):當個月的條件區(qū)域等于B3時,對各月F:F列參數進行平均;
2:IFERROR(AVERAGEIF,“”):與求和函數相比,此處多了IFerror函數在這里做一次判斷,當我們AVERAGEIF函數對各月參數進行判斷時,如果這個月此人沒有數據我們判斷區(qū)域會顯示錯誤值,如下圖:
所以必須用IFEEROR函數做判斷,當求出的為錯誤值時,計算為空,這樣才不會計入到平均值里面去;
3:與求和一樣結束后需要使用:ctrl+shift+enter三鍵求組。
現在你學會如何根據實際情況使用Indirect函數進行數據處理了嗎?
聯(lián)系客服