小小的offset函數讓大家雲裡霧裡,幾度關心但從未徹底了解其精髓。從複雜的資料彙總到資料透視表乃至進階動态圖表都離不開offset函數。這些應用無論多複雜,隻要我們了解offset精髓,一切迎刃而解!
下面就用一張簡陋而又簡單的圖例來了解offset。
1、将a1單元格内容克隆到d1單元格,在d1單元格輸入=offset(a1,0,0),d1顯示“産品”

2、将offset(a1,0,0)第二個參數0改成1,即改成=offset(a1,1,0),寫入d1單元格中,d1單元格顯示“a”,如下圖
推廣不容錯過:天貓入駐-胡軍代言品牌助您入駐各大電商平台,實作網際網路+
3、如果将=offset(a1,0,0)第二個參數改成2呢,想一下d1單元格會顯示什麼?
答案,如下圖
相信大家已經看明白了,offset(a1,2,0)的第二個參數,是以a1為基準,向下移動幾個單元格。而第一個參數就是基準單元格。另外,第三個參數寫幾,就是以基準單元格向右移動幾個單元格。
思考一下,要在d1單元格中克隆b3的内容,以a1為基準offset參數應該怎麼寫。
d1單元格=offset(a1,2,1),如下圖:
推廣上線送好禮, 超s爆率真傳奇!
現在,大家徹底明白offset(a1,2,1)函數的這3個參數的作用了吧,offset(基準單元格,縱向偏移,橫向偏移)。
但是offset偏偏有5個參數,我們剛才隻用了前3個參數,剩下兩個是幹嘛用的呢,有些夥伴是不是又開始頭疼了。其實很簡單,繼續往下看。
我們把文章開篇第一幅圖例搬下來,依然将a1單元格内容克隆到d1單元格,但是這次要修改一下參數,把offset(a1,0,0)三個參數修改為offset(a1,0,0,1,1)五個參數,寫入d1單元格,3參數和5參數的輸出結果一樣,d3顯示“産品”,如下圖:
看到這裡,大家以為,既然3參數和5參數輸出結果相同,直接用3參數多簡單?5參數恰恰就是offset的精髓所在。
以下圖為例,使用offset函數一次性克隆a1和b1到d1和e1
現在把offset第五個參數改動一下,由offset(a1,0,0,1,1)改為offset(a1,0,0,1,2),寫入d3和e3單元格,同時寫入d3和e3單元格?對!你沒看錯,我也沒寫錯!關鍵就在這,怎麼寫入?
選擇d3和e3單元格,寫入=offset(a1,0,0,1,2)。注意!!!注意:寫入後按下ctrl+shift+enter,函數才能生效!!! 這就是為什麼有些夥伴總出錯的原因!!!
注意:函數兩邊的花括号,不是寫上去的,按下ctrl+shift+enter自動生成的!這就是數組概念,數組以後給大家介紹。先搞懂offset!
到這裡,大家應該領悟到第五個參數的真谛了吧,第五個參數是2,就是傳回以第一個參數a2單元格為基準,橫向兩個單元格的内容,輸出單元格也要同時選擇橫向兩個單元格。不然,輸出隻選一個單元格的話 ,放不下, 它隻能報錯了!
那麼,第四個參數幹嘛用的? 就是克隆顯示縱向的單元格數量。
思考下圖,如何利用offset一次性克隆a1:b2區域到d1:e2區域。
有些夥伴應該會做了,offset(以a1單元格為基準,0,0,傳回橫向2個單元格區域,傳回縱向2個單元格區域)。 這就是offset(),5個參數的原理!自己任意改改參數體會一下吧,同時輸出顯示多個單元格時候不要忘記按ctrl+shift+enter。
明白原理後,我們來看一個應用。
利用offset的前3個參數,将多列轉置成多行。
在a10單元格寫入函數=offset($a$1,column(a1)-1,row(a1)-1),填充a10:e11,就會看到上圖的效果。在這裡columu(a1)傳回“1”,row(a1)傳回“1”,是以解析a10單元格函數offset(a1,0,0),這樣大家很容易就可以看懂了。
offset所能完成任務遠遠不止這麼簡單,我會陸續給大家介紹更多應用