日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Excel函数——OFFSET函数将多列合并成一列

發布時間:2024/3/24 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Excel函数——OFFSET函数将多列合并成一列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近遇到一個問題,如圖所示,每個表的字段分別一列展示,不同表有公共字段,也有獨有的字段,現想統計這些表一共涉及到哪些字段。基本思路就是將這些表的字段合并為一列再去重。因為涉及到70多列,復制粘貼比較耗時,于是想到用Excel中的OFFSET函數解決。

OFFSET函數的功能是以指定的引用為參考系,通過給定偏移量得到新的引用。返回的引用可以是任何一個單元格,也可以是單元格區域,還可以指定返回的行數或列數。其格式為:
OFFSET(reference,rows,cols,height,width)

  • 參數reference是一個引用區域,作為偏移量的參照系,它必須是對單元格或相連單元格區域的引用,否則函數將返回錯誤值“#VALUE!”
  • 參數rows表示相對于reference參照系偏移的行數,若為正數表示在起始引用的下方,若為負數表示在起始引用的上方;
  • 參數cols表示相對于reference參照系偏移的列數,若為正數表示在起始引用的右方,若為負數表示在起始引用的左方;
  • 參數height表示高度,即要返回的目標引用區域的行數,它必須是正數;
  • 參數width表示寬度,即要返回的目標引用區域的列數,它必須是正數。
    注意如果省略了height或width,則認為其高度或寬度與reference相同;此函數實際上并不移動任何單元格或更改選定區域,它只是返回一個引用,它可用于任何需要將引用作為參數的函數。

例1:獲取單元格,如圖在F2單元格輸入公式OFFSET(A1,2,1,1,1),表示以A1單元格為參考向下移動2行、向右移動1列,獲得單個單元格。輸入公式按“Enter”即可得到圖中所示結果。

例2:獲取單元格區域,如圖選中G2:H4單元格區域輸入公式OFFSET(A1,1,1,3,2),表示以A1單元格為參考向下移動1行、向右移動1列,獲得3行2列的單元格區域。因為獲得的是區域,需要輸入完公式后按“Ctrl+Shift+Enter”,即得到圖中所示結果。

例3:將表1的數據轉成表2形式,即數值列為各指標數值的依次追加。為了實現拖動鼠標復制公式且保證得到正確的結果,結合了絕對引用$E$2、ROW()、MOD()、INT()等,其中

  • $E$2表示在E列公式中都是以E2為參考系的
  • ROW()是獲取當前單元格所在行,MOD()是取余,INT()是取整,三個函數結合實現動態計算偏移量。因為表1中每列數值為9個,因此MOD()、INT()中均除以9。

首先,E3單元格的公式
OFFSET($E$2,MOD(ROW(E3)-3,9)+1,INT((ROW(E3)-3)/9)+3)
=OFFSET($E$2,MOD(3-3,9)+1,INT((3-3)/9)+3)
=OFFSET($E$2,0+1,0+3)
=OFFSET($E$2,1,3)
表示以E2單元格為參考向下移動1行、向右移動3列,獲得單個單元格,得到如圖結果。

E16單元格的公式OFFSET($E$2,MOD(ROW(E16)-3,9)+1,INT((ROW(E16)-3)/9)+3)
=OFFSET($E$2,MOD(16-3,9)+1,INT((16-3)/9)+3)
=OFFSET($E$2,4+1,1+3)
=OFFSET($E$2,5,4)
表示以E2單元格為參考向下移動5行、向右移動4列,獲得單個單元格,得到如圖結果。

通過示例基本掌握了OFFSET()的使用方法,下面利用OFFSET()解決開篇的問題。

  • Step1:在單元格D3輸入公式OFFSET($D$3,MOD(ROW(D3)-3,21),INT((ROW(D3)-3)/21)+1,1,1),然后向下拖動鼠標即得到D列數據。
  • Step2:因為每一列的長度不同,所以對于沒有數據根據公式自動取零了。復制D列的數據粘貼數值到B列,在此利用查找/替換功能把零去掉,即將零替換為空值。
  • Step3:利用數據–刪除重復項功能進行去重,得到最終效果。


    ps:初衷是通過撰寫博文記錄自己所學所用,實現知識的梳理與積累;將其分享,希望能夠幫到面臨同樣困惑的小伙伴兒。如發現博文中存在問題,歡迎隨時交流~~

總結

以上是生活随笔為你收集整理的Excel函数——OFFSET函数将多列合并成一列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。