今天跟大家分享一下的使用方法,這個函數在Excel中的應用非常的廣泛,可以用于制作,構建動態的引用區域,實現動態求和等等,可以說是Excel高手必備的函數之一。
一、OFFSET函數的作用與參數
Offset函數:offset是一個偏移函數,它以一個單元格為基點進行偏移得到一個新的偏移區域
語法:=OFFSET(reference, rows, cols, [height], [width])
第一參數:偏移基點
第二參數:行數,向上或者向下偏移的行數
第三參數:列數,向左或者向右偏移的列數
第四參數:高度,返回引用區域的行高
第五參數:寬度,返回引用區域的列寬
我們需要注意的是offset函數獲取的是一個數據區域,并不是一個具體的結果,比如在這里我們想要使用offset函數獲取下圖黃色的數據區域,只需要將函數設置為OFFSET(A1,3,2,4,2)即可。
這個函數就表示OFFSET函數會以A1單元為基點,先向下偏移3行來到A4單元格(張飛)然后再向右偏移2列來到C4單元格,隨后以C4單元格為原點在行方向向下引用4行數據,在列方向向右引用2行數據,這個就是函數的偏移過程。
因為offset獲取的是一個數據區域,我們無法直接看到這個偏移的結果是不是正確的,這個時候可以考慮將offset函數嵌套在sum函數中,對偏移結果區域求和,通過求和結果來判斷偏移結果是不是正確的。
二、動態求和
跟大家拆分一個offset最經典的應用實例,就是實現動態求和,如下圖,我們想要通過更改姓名與月份,獲取這個人在指定時間段的數據之和。
在這里我們只需要將公式設置為:=SUM(OFFSET(A1,MATCH(A16,A2:A11,0),MATCH(C16,B1:I1,0),1,MATCH(D16,B1:I1,0)-MATCH(C16,B1:I1,0)+1)),即可得到正確的結果。
跟大家簡單的講解下這個函數的參數與運算過程
第一參數:A1,這個就是offset函數偏移的基點
第二參數:MATCH(A16,A2:A11,0),它的作用是查找嫦娥這個姓名在數據源中姓名這一列的位置,結果為6,就表示基點會從A1開始向下偏移6行,來到A7單元格
第三參數:MATCH(C16,B1:I1,0),他的作用是查找開始月份(5月)在表頭這一行中的位置,結果為5,就表示函數會A7單元格開始向右偏移5行,來到F7單元格,也正好是嫦娥5月份的數據
第四參數:1,因為在這里數據僅僅只有1行,我們將行數設置為1即可
第五參數:MATCH(D16,B1:I1,0)-MATCH(C16,B1:I1,0)+1),用于確定引用數據區域的列數,首先我們使用MATCH(D16,B1:I1,0)來查找一下結束月份(8月)在表頭的位置,他的結果是8,MATCH(C16,B1:I1,0)計算的是開始月份(5月)在表頭,二者相減結果為3,但是在表格中5月到8月它是包含4列數據的,所以我們還需要為結果加1才可以得到正確的偏移區域。
最后我們再使用offset函數對這個偏移的結果求和就會得到嫦娥5月到8月的數據之和,更改姓名與月份,這個時間就會自動的發生變化,非常的方便,如下圖所示
以上就是今天分享的全部內容,offset函數雖然參數比較多,結果比較抽象,但是我們只需要理解它各個參數的含義,也是可以輕松掌握的。