我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
像 C 列中的“负责人选项表”这一项目的选项,在实际工作中调整这个选项的数量的情况其实非常普遍。如输入商品名称等操作,输入选项会因为商品的改动或下架有所调整。遇到这样的情况,如果“负责人选项表”所指定的范围是 C2:C4这种固定范围的话,如果之后要在单元格 C5中追加新的负责人名字,那么就无法出现在单元格 A2的序列输入选项列中。
输入新的负责人,无法显示在序列中
如此一来,想要把 C5也放入指定范围中,我们需要再次设置【来源】指定的范围。如果不需要经常增减选项的话,这样的操作也不会花太多时间,但若是需要频繁修改【来源】的范围,那么就麻烦了。如果序列输入可以自动对应【来源】内容做出调整,即使需要频繁修改也不会觉得麻烦。
为此,请在“负责人选项表”名称的引用位置里输入如下公式:
=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)
引用位置中输入=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)
这里使用的是 OFFSET 函数。这个函数非常重要,请务必掌握。这一函数的要点有两个:
OFFSET 函数的公式:
【公式】
=OFFSET(基准单元格,偏离行数,偏离列数)
OFFSET 函数的语法为:“第一参数指定的单元格(基准单元格)开始,第二参数指定向上或向下偏移几行,第三参数指定从第二参数偏离后的位置向右或向左偏移几行”。第二参数为正数则向下移动,为负数则向上移动。第三参数为正数则向右移动,为负数则是向左移动。
下面来看一下使用案例吧。下图中的工作表是 A1:D3为范围以性别和课程来分类的费用表。
A1:D3为范围以性别和课程来分类的费用表
男性为1、女性为2,并用括号括起来。每项各自以单元格 A1为基准,男性的费用在单元格 A1的下一行,女性的费用在单元格 A1的下两行。
关于课程,初级为1、中级为2、高级为3。也是以单元格 A1为基准,初级在 A1向右一列,中级在 A1向右第二列,高级在 A1向右第三列。
这时,在单元格 B5输入代表性别的数值,在单元格 B6输入代表课程的数值,单元格 B7中就会显示相应的费用金额。想要建立这种结构,需要在单元格 B7输入以下函数公式:
=OFFSET(A1,B5,B6)
在单元格 B7中输入=OFFSET(A1,B5,B6)
这个公式可以导出以单元格 A1为基准,A1~B5指定的数字向下、B6指定的数字向右偏移的单元格的值。
如图所示,第二参数单元格 B5为1,第三参数指定的单元格 B6为2。如此一来,A1向下偏移一格、再向右偏移两格……即指向 C2的值。这利用的是 OFFSET 函数的基础逻辑:第一参数指定的单元格为基准,第二参数指定的数字向下,再从这一位置以第三参数指定的数字向右移动所指向的单元格。
第二参数指定的数字若为负数,则第一参数为基准向上移动,第三参数指定的数字若为负数,则第一参数为基准向左移动。
顺带一提,运用这一函数也可以解决“在 VLOOKUP 函数中,是否能获取位于检索列左侧的数值吗”这一问题(参考 P116)。
如何指定范围
另外,通过 OFFSET 函数,还能以从基准单元格按第二参数数值向下、第三参数数值向右偏移的位置为起点,再次指定范围。但是此时需再追加2个参数。
=OFFSET(基准单元格,偏移行数,偏移列数,高度,宽度)
在下表中,B 列为每天的销售额。在单元格 D1中输入想要知道从1号开始到第 N 天的累计销售额的天数,单元格 G1就会自动显示销售额数据。
此表中,D1的数值为2,销售额 G1中则显示1日~2日两天的累计销售额。
在单元格 G1中,需要输入以下函数公式:
=SUM(OFFSET(B1,1,0,D1,1))
一般要计算数值的和,都会用到 SUM 函数,SUM 函数可计算出括号内指定的单元格范围内的和。SUM 函数括号内的 OFFSET 函数就在指定的单元格范围。
首先,我们只看 OFFSET 函数部分,确认它所指定的范围。这是以单元格 B1为基准,向下移动1格、向右移动0格,也就是不向右移动。于是,偏移的目标单元格为 B2。
再以 B2为起点,指向第四参数指定的行数(此表中单元格 D1的值为2,即2行)和第五参数指定的1列的范围(具体为 B2:B3)。
这里需要掌握的重要信息为:OFFSET 函数的第四参数指定的范围的行数若发生变化,OFFSET 函数指定的范围也会有所变化。
OFFSET 函数所指定的范围,可利用“根据单元格 D1的值,纵向扩展”这一点灵活应对。
应用这个方法,即便是序列输入模式,可以应对【来源】范围中数据有所增加的情况,选项也会自动增加。
那么接下来,我们再来看一下刚刚以“负责人选项表”为引用范围输入的公式。
=OFFSET(负责人!$C$1,1,0,COUNTA(负责人!$C:$C)-1,1)
我们来分析一下这个公式。首先,以“负责人”工作表中单元格 C1为基准,向下移动1格、向右移动0格的目标单元格,即单元格 C2为起点的范围。
想要指定这个范围的行数,需要使用 COUNTA 函数。通过 COUNTA 函数,将整个 C 列的含数据的单元格的行数减去1。由于 C 列中含数据的单元格中含有第一行“负责人选项表”这一项目,因此需要减去这一行。
然后,用第五参数指定范围的宽度为1。
第四参数的 COUNTA 函数一般所取的是整个 C 列中含数据的行数减1后得到的数字,所以当 C 列中追加负责人后,“负责人选项表”的范围也应自动进行相应的扩大。
如此一来,单元格指定范围的“负责人选项表”下的数值,与单元格 A2的菜单中的下拉选项的数值必须要一致。
“负责人选项表”与单元格 A2的菜单中的下拉选项的数值一致
相关文章
我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
在工作中,可能许多朋友都会碰到一个情况,那就是工作簿和工作表数据的合并操作。如何将上百个工作簿快速合并到一个表格中,许多朋友可能会觉得不可思议。今天我们就来教大家学习一......
2023-01-08
今天在这里为你分享5个Excel文本函数,这些拆分和组合函数,你一定会用上的。①LEFT函数公式:=LEFT(A2,1)在Excel表格中,需要想要拆分汉字,想从哪里开始就从那哪里开始。首先选定单元格......
2023-01-08
相信大家也和我一样,才开始看到Excel可以当做翻译软件的时候会很好奇,这究竟是怎样做到的?其实,这个方法并不是很难,它是由一个函数公式而制作出来的,好了,首先我们一起来看看成......
2023-01-08
函数可以说是所用快捷方法中最为简单的一种方法,为什么很多人认为函数用起来很难了?主要是因为它拥有很长的函数公式,记不住。其实不管是学Excel函数,还是学习其他的一些快捷方法......
2023-01-08