相信我們做财務工作的同事都遇到過這種情況,諸如下表,我們經常要對一年的數據進行彙總,有時還需要對各月或季度的數據進行求和彙總,那麼我們如何利用一套公式來實現這個功能呢,也就是說在一年十二個月中對任意連續的月份進行求和。
需要求和彙總的數據
要實現這個功能,我們首先了解一下Excel的OFFSET()函數,該函數是以指定的單元格或相連單元格區域的引用為參照系,通過給定偏移量得到新的引用,返回的引用可以是一個單元格,也可以是一個區域,可以指定行列數。
OFFSET函數的語法格式:
=OFFSET(reference,rows,cols,height,width)
=OFFSET(參照單元格,行偏移量,列偏移量,返回幾行,返回幾列)
案例運行結果
在該案例中,我們在D1、D2單元格中選取開始月份及結束月份,再用SUM函數去求大于等于D1單元格的月份、小于等于D2單元格的月份區間的和,主要就是利用OFFSET()函數來選取這個區間。
我們就用O3單元格的公式介紹其計算過程,O3單元格公式如下:
=SUM(OFFSET(E3,0,VLOOKUP($D$1,$A$2:$B$13,2,0),1,VLOOKUP($D$2,$A$2:$B$13,2,0)-VLOOKUP($D$1,$A$2:$B$13,2,0) 1))
OFFSET()函數的參數設置如下:
“E3”,以“E3”單元格為參照系;
“0”,行不偏移,表示選取本行單元格;
“VLOOKUP($D$1,$A$2:$B$13,2,0)”,列偏移量,首先取“D1”單元格的值,也就是開始的月份,用VLOOKUP在區間“$A$2:$B$13”中找出月份對應的數值,其數值就是列偏移量,例如“一月”,對應值為“0”,表示列不偏移,因為我們以“E3”單元格作為參照系的,當選取“五月”,就是以“E3”單元格為參照系向右偏移4列;
“1”,表示返回1行;
“VLOOKUP($D$2,$A$2:$B$13,2,0)-VLOOKUP($D$1,$A$2:$B$13,2,0) 1”,表示返回多少列,先取“D2”單元格的值,同理取出月份對應的偏移量,減去“D1”單元格月份對應的偏移量,再加“1”,例如我們開始月份為五月,對應為“4”,結束月份為八月,對應為“7”,其實我們要顯示五月到八月,共4個月的值,所以要“7-4 1”。
這樣我們就通過OFFSET函數确定了求和區間。
我們在“D1”、“D2”單元格中利用“數據驗證”取得開始和結束的月份,其取值序列為“A2:A13”,為了不能出現結束月份小于開始月份,我們在“D2”單元格的“數據驗證”中用了“INDIRECT”函數,讓其取值範圍以“D1”單元格選取值的變化而變化。
案例數據驗證
例如上圖,我們選取“七月”到“十二月”,通過公式可以看出其求和的值為“7 8 9 10 11 12”,選取“一月”到“六月”,通過公式可以看出其求和的值為“1 2 3 4 5 6”。
通過以上設置,我們就達到了對任意連續區間進行求和的目的。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!