前言
静态图表我们每个人都会做,并不困难,但是每当有数据增加的时候 , 就要重新选择数据范围,数据量少的时候还好,数据量大的时候就十分的麻烦了,那么有没有办法让图表随着数据的增加而自动扩展区域呢?核心原理
涉及公式:offset、counta
- offset:返回对单元格或单元格区域中指定行数和列数的区域的引用 。返回的引用可以是单个单元格或单元格区域 。可以指定要返回的行数和列数 。(offset是区域偏移函数,结果是一个区域,在Excel中无法准确的表达出来)
- =OFFSET(reference,rows,cols,[height],[width])
- height与width变量的意思是将前边三个条件所选的区域往下偏移多少行 , 往右偏移多少列(把它理解为坐标更好懂) , 不懂往下看实例 。
- offset中主要涉及了
- reference,rows,cols,height,width
- 五个变量,正常使用height跟width不是必选的 , 但是我们这次的重点就是height变量
- 函数写法
- =OFFSET(reference,rows,cols,[height],[width])
- counta:计算范围中不为空的单元格的个数 。
- counta函数容易理解 , 即通过统计所选范围内不为空的单元格个数,这个单元格可以是数值也可是文本 。
- 函数写法
- =COUNTA(value1,[value2], ...)
原理
运用Offset函数分别引用列的数据,在加上counta函数可以智能的判断该列有多少行,将其counta函数的结果作为height,当counta数值变动的时候,引用的区域亦会随着改变 , 形成一个动态范围 。步骤
1、打开表格,先将其创建一个图表先,我这以折线图为例
2、因为我们想要其数据根据表格变化,所以我们需要用到2次offset函数,分别对应横纵坐标 。
我这以盈利的数据为例 , 我们在空白的地方输入下边函数
=OFFSET($A$1,1,1,COUNTA($B:$B)-1,1)
=OFFSET($A$1,1,1,COUNTA($B:$B)?1,1)
为什么要这样做?当然是为了方便检查函数逻辑是不是正确的呀这个函数的意思是,以A1为参考的依据,向下1行 , 向左一列开始,往下选择(B列-1)的非空白单元格的个数区域,向右不扩展选择 。加$是为了绝对引用 , 如果你没这个必要可以不加
3、为了方便引用,我们在【公式】下找到【名称管理器】,点击进去 , 点击新建

4、这时候会弹出一个对话框,前边的名称、范围、备注可根据个人需求选择填写,在【引用位置】处 , 将第2步的公式复制粘贴进去 。这时候我们盈利这列的数据就可以暂告一段落了 。

5、重复2-4步,将姓名一列也进行处理,需要注意的是,此时函数的变化
=OFFSET($A$1,1,0,COUNTA($A:$A)-1,1)
=OFFSET($A$1,1,0,COUNTA($A:$A)?1,1)
具体意思看第2步6、右键图表,点击选择数据

7、在弹出的对话框中我们可以看到有个【系列】以及【类别】,我们分别点击修改

8、点击修改图表会出现如下对话框,我们要在【系列值】处进行修改 。

将如上图我所选的地方保留,剩余部分删除,并在!后输入刚才你命名的名称(在【名称管理器】中的名称,不知道的可以点击去查看,注意这是y轴的,即第二列的,不要填错了)

同理将x轴也进行将修改
9、至此我们已经完成了一个随数据源增加自动扩展区域的图表了,我们可以在表格处增加修改数据,检验一下是否有效果

注意:【Excel小技巧——图表随数据源增加自动扩展区域】
在输入公式的时候用的都是全角符号 。
