offset從指定區域獲取數據(自動計算數據)


1、OFFSET用於從指定區域獲取一個視圖。

OFFSET(reference, rows, cols, [height], [width])
   必選:
        eference:獲取被參考單元格
        rows:相對於被參考單元格的行偏移量 
     cols:
相對於被參考單元格的列偏移量
  可選: 
     [height]:返回視圖的高
     [width]:返回試圖的寬
eference:獲取被參考的單元格
  a:從本工作簿獲取單元格。例如,獲取當前文檔->值班表->D3 => 值班表!D3
  b:從其他工作簿獲取單元格。例如,獲取1月份值班表->值班表->D3 =>[1月份值班表]值班表!D3
  要求被引用的文檔必須打開,否則無法獲取引用。b中《1月份值班表》必須打開,否則公式報錯。
 
         
rows:相對於被參考單元格的行偏移量 
a:當數字為正數時,表示相對於eference選擇的單元格下移。例如:1表示下移一個單元格
b:當數字為負數時,表示相對於eference選擇的單元格上移。例如:-1表示上移一個單元格
c:集合的表示形式,{1,17,21,25},表示eference選擇的單元格向下移動1、17、21、25個單元格,組成一個視圖(虛擬表)。
 
         
cols:相對於被參考單元格的列偏移量 
a:當數字為正數時,表示相對於eference選擇的單元格右移。例如:1表示右移一個單元格
b:當數字為負數時,表示相對於eference選擇的單元格左移。例如:-1表示左移一個單元格
c:集合的表示形式,{1,17,21,25},表示eference選擇的單元格向右移動1、17、21、25個單元格,組成一個視圖(虛擬表)。
如果不想讓選擇的單元格移動,使用再D3改成$D$3
綜合:
OFFSET(值班表!$D$3,{4,20,24,28},0)
上述語句表示,被參考的單元格時當前工作簿,名稱為"值班表"的工作表,D3單元格為被參考的單元格。以D3為基礎向下移動4、20、24、28單元格。不左右移動。返回一列4行的視圖。

2、獲取offset中重復的值,從offset中獲取重復的值。使用countif函數。參考countif章節

  countif意為從指定的區域獲取重復值,一旦找到重復值,將返回重復值個數。

=SUM(COUNTIF(OFFSET(值班表!$D$3,{2,3,18,19,22,23,26,27},0),B20))*4.5

  使用sum求出使用的從視圖中獲取到含有B20單元格的數量,單位是4.5,計算得到實際所需值。

=SUM(COUNTIF(OFFSET(值班表!$D$3,{1,17,21,25},0),B21))*8+
SUM(COUNTIF(OFFSET(值班表!$D$3,{4,20,24,28},0),B21))*7

  每次只需要合理設置偏移量,修改第一行的公式即可。這里限制$D$3為固定值,B21為遞增的值。

 













免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM