• 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为递增的值。












  • 相关阅读:
    存储管理:
    小软件推荐:
    python学习之序列化
    python学习之串口编程
    python学习之常用模块
    Linux调试工具strace和gdb常用命令小结
    adjtimex和时钟的几个概念tick,freq,ppm,jiffies
    koji
    top -Hp pid 显示所有的线程
    Neighbour table overflow---- arp表溢出
  • 原文地址:https://www.cnblogs.com/smartmsl/p/12187347.html
Copyright © 2020-2023  润新知