Loading [MathJax]/jax/input/TeX/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域

精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域

作者头像
fanjy
发布于 2021-02-05 06:39:50
发布于 2021-02-05 06:39:50
10.1K0
举报
文章被收录于专栏:完美Excel完美Excel

动态单元格区域是指当添加或删除源数据时,或者随着包含单元格区域的公式被向下复制时根据某条件更改,可以自动扩展或收缩的单元格区域,可以用于公式、图表、数据透视表和其他位置。

那么,如何创建动态单元格区域呢?可以使用INDEX函数或者OFFSET函数。许多人倾向于使用INDEX函数,因为OFFSET函数是一个易失性函数。

什么是易失性函数?

每当Excel重新计算电子表格时,无论其引用的单元格有无变化,易失性函数都会重新计算。许多操作都会触发重新计算,例如在单元格中输入数据、插入行等。这样,易失性函数会增加公式的计算时间。下面列出了一些触发重新计算的操作:

1.输入新的数据

2.删除/插入行/列

3.执行自动筛选

4.双击行列分隔线

5.重命名工作表

6.改变工作表的位置

下面列出了一些易失性函数:CELL函数,INDIRECT函数,INFO函数,NOW函数,OFFSET函数,RAND函数,TODAY函数。

INDEX:查找行或列的公式

创建动态单元格区域的最基本的公式类型是基于条件来查找整行或整列值,可以使用INDEX函数实现。

INDEX函数有3个参数:

=INDEX(array,row_num,column_num)

通常,给参数row_num指定行号,给参数column_num指定列号,INDEX函数执行双向查找返回行列号交叉处的值。如果要获取整列,那么只需要给INDEX函数指定代表列号的参数column_num的值,忽略参数row_num(为空)或者指定其值为0。通过指定参数row_num为空或0,告诉Excel返回所选列的所有行。

同理,想要获取整行,则需要指定参数row_num的值代表行号,将参数column_num指定为空或0。这告诉Excel需要返回所选行的所有列。

图1:查找并求2月份的数值之和

注意,图1所示的公式并不需要按Ctrl+Shift+Enter组合键,虽然INDEX函数返回的是一个单元格区域,其原因是没有执行直接数组操作。下面两种情况需要按Ctrl+Shift+Enter组合键:

1.如果放置需要Ctrl +Shift + Enter进入公式的直接数组操作,则需要使用Ctrl +Shift + Enter。

2.如果想要传递多个值到多个单元格,则必须使用Ctrl +Shift + Enter。

用于处理扩大和缩小单元格区域的动态单元格区域公式

在创建动态单元格区域公式之前,必须问清楚下列问题:

1.是垂直单元格区域(一列)吗?

2.是水平单元格区域(一行)吗?

3.是双向单元格区域(行列)吗?

4.是数字、文本,还是混合数据?

5.是否存在空单元格?

对这些问题的答案决定可能使用哪种公式。

MATCH:确定数据集中的最后一个相对位置

下图2展示了4列不同的数据类型:单元格区域A5:A10在最后一项前包含混合数据,其中没有空单元格;单元格区域A16:A21在最后一项前包含带有空单元格的混合数据;单元格区域C5:C10在最后一项前包含带有空单元格的数字数据;单元格区域C16:C21在最后一项前包含带有空单元格的文本数据。在所有这4种情形下,要使用公式创建在添加或减少数据时扩充或缩减的动态单元格区域,需要确定该列中最后一个相对位置。图2中展示了6种可能的公式。

图2:对于不同数据类型查找最后一行

在图2所示的公式[2]至[6]中,展示了一种近似查找值的技术:当要查找的值比单元格区域中的任何值都大且执行近似匹配(即MATCH函数的第3个参数为空)时,将总是获取列表中最后一个相对位置,即便存在空单元格。

INDEX和MATCH函数:获取单元格区域中的最后一项

下图3和图4展示了如何使用MATCH和INDEX函数在单元格区域中查找最后一项。

图3:当有4条记录时查找单元格区域中的最后一项

图4:当有6条记录时查找单元格区域中的最后一项

使用INDEX和MATCH函数创建可以扩展和缩小的动态单元格区域

如下图5所示,在单元格E2中是一个数据有效性下拉列表,其内容来源于单元格区域A2:A5,在单元格F2中的VLOOKUP公式从单元格区域A2:C5中查找并返回相应的数据。

图5:下拉列表和VLOOKUP公式

问题是,当在单元格区域A2:C5的下方添加更多的数据时,数据有效性下拉列表和VLOOKUP公式中的相应单元格区域都不会更新。当前,在“成本”列中的最后一项是单元格C5,如果添加新记录,在“成本”列中最新的最后一项应该是单元格C6,这意味着在VLOOKUP公式中的查找区域需要从A2:C5改变为A2:C6。注意到,这两个区域都开始于相同的单元格A2。我们现在的任务,就是找到一种方法,当添加或删除记录时,其最后一个单元格引用能够相应更新。此时,可以使用INDEX函数。

静态的单元格区域如下:

A2:C5

创建的动态单元格区域如下:

A2:INDEX(C2:C8,MATCH(9.99E+307,C2:C8))

注意,由于INDEX函数位于一个起始单元格引用和冒号之后,因此不再获取该区域中的最后一项,而是获取该区域中最后一项的单元格地址(单元格引用)。

此时,你在图5的数据区域中添加或删除记录,创建的动态单元格区域会自动更新。

下面是创建动态单元格区域公式的关键点:

1.足够的行以容纳所有潜在数据。

(1)如果含有数字的数据集在列C中并决不会超过50条记录,可使用:

=A2:INDEX(C2:C51,MATCH(9.99E+307,C2:C51))

(2)如果含有数字的数据集在列C中并决不会超过500条记录,可使用:

=A2:INDEX(C2:C501,MATCH(9.99E+307,C2:C501))

(3)如果含有数字的数据集在列C中并且不确定有多少条记录,可使用:

=A2:INDEX(C:C,MATCH(9.99E+307,C:C))

2.不要在公式使用的单元格区域的下方输入无关数据,因为会导致公式创建不正确的区域。例如,如果公式使用潜在单元格区域C2:C50,并且最后一个数据位于单元格C25,那么不要再在单元格C49中输入数据,因为公式会将其考虑为该列的最后一个单元格。

注:本文为电子书《精通Excel数组公式(学习笔记版)》中的一部分内容节选。你可以到知识星球App的完美Excel社群下载这本电子书的完整中文版。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
精通Excel数组公式15:使用INDEX函数和OFFSET函数创建动态单元格区域(续)
导语:本文为《精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域》的后半部分。
fanjy
2021/03/12
4.6K0
精通Excel数组公式009:提供多个值的数组公式
如下图1所示,我们在单元格区域中使用数组公式生成序号,这样,使用者就不能够随意删除其中一个单元格中的序号,只能选中该区域后全部删除。
fanjy
2020/09/04
5.8K0
精通Excel数组公式009:提供多个值的数组公式
精通Excel数组公式010:认识数组函数:TRANSPOSE、MODE.MULT和TREND
数组函数是可以提供多个值的Excel内置函数。下面列出了8个Excel内置的数组函数:
fanjy
2020/09/08
2.2K0
精通Excel数组公式010:认识数组函数:TRANSPOSE、MODE.MULT和TREND
精通Excel数组公式011:令人惊叹的SUMPRODUCT函数
本文主要探讨什么时候使用SUMPRODUCT函数更有效,而什么时候应该使用SUMIFS函数代替SUMPRODUCT函数。
fanjy
2020/09/17
7.2K0
精通Excel数组公式011:令人惊叹的SUMPRODUCT函数
VLOOKUP很难理解?或许你就差这一个神器
一说到Excel查找函数,你一定会想到VLOOKUP函数,虽然它是最基础实用的函数,但每次一看就会,一用就忘。接下来给大家分享一个VLOOKUP函数动态图解 ,记得收藏它哦,在每次使用VLOOKUP函数时,把它拿出来一看就会用,不用再去花精力搜其它资料了。
数据STUDIO
2021/06/24
8.7K0
Excel: 通过Indirect函数和Address函数引用单元格数据
文章背景:公式引用无效单元格时将显示 #REF! 错误。当公式所引用的单元格被删除或被粘贴覆盖时最常发生这种情况。因此,不推荐在函数中使用显式单元格引用。通过Indirect函数和Address函数,可以实现单元格的间接引用。
Exploring
2022/12/18
8.3K0
Excel:  通过Indirect函数和Address函数引用单元格数据
Excel 函数之查找和引用函数
HLOOKUP函数用于在表格或数值数组的首行查找指定的数值,并在表格或数组中指定行的同一列中返回一个数值。HLOOKUP 中的 H 代表“行”。
哆哆Excel
2022/10/25
2.1K0
Excel 函数之查找和引用函数
Excel: 引用数据源发生移动时,如何不改变引用的单元格地址
文章背景:在Excel中,公式引用无效单元格时将显示 #REF! 错误。当公式所引用的单元格被删除或被粘贴覆盖时最常发生这种情况。针对这种情况,之前采取过一些措施,比如禁用自动填充功能等(参见文末的延伸阅读)。但这些措施治标不治本,虽然可以防止数据源发生移动,但也带来了不友好的体验(比如无法使用自动填充功能)。
Exploring
2022/09/20
4.6K0
数据分析常用的Excel函数
FIND 和 SEARCH 两个函数几乎相同,区别在于FIND 精确查找,区分大小写; SEARCH 模糊查找,不区分大小写。
活用数据
2019/06/03
4.7K0
数据分析常用的Excel函数
Excel常用函数大全
我们在使用Excel制作表格整理数据的时候,常常要用到它的函数功能来自动统计处理表格中的数据。这里整理了Excel中使用频率最高的函数的功能、使用方法,以及这些函数在实际应用中的实例剖析,并配有详细的介绍。 1、ABS函数    函数名称:ABS 主要功能:求出相应数字的绝对值。 使用格式:ABS(number)    参数说明:number代表需要求绝对值的数值或引用的单元格。 应用举例:如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如
小莹莹
2018/04/20
3K0
Excel常用函数大全
精通Excel数组公式006:连接数组运算
连接运算符是:&,可以将两个或多个项目连接成一个项目,这些项目可以是数字、文本(使用引号括起来)、公式结果,等等。
fanjy
2020/07/07
1.9K0
精通数组公式17:基于条件提取数据(续)
创建数据提取数组公式的技巧是在公式内部创建一个“匹配记录”相对位置的数组。如下图8所示,可以看到与条件相匹配的记录的相对位置是7和10,它们将作为INDEX的row_num参数的值。
fanjy
2021/03/12
3.7K0
index函数基本用法有哪些?可以用来干什么?
index函数是一种非常实用的计算机语言,有很多用法,主要使用在excel表格中,能够帮助直接返回表格或者表格中某个区域的值以及值的引用等。很多人都想学习index函数,下面就为大家介绍index函数有哪些基本用法以及可以用来干什么。
用户8715145
2021/06/17
6.3K0
精通Excel数组公式022:提取唯一值列表并排序(续)
下图12展示了两个对数字进行排序的公式。使用SMALL/ROWS函数从小到大排序,使用LARGE/ROWS函数从大到小排序。
fanjy
2021/03/12
5.8K0
Excel公式技巧02: INDEX函数,有时可替代数组公式
我们知道,数组公式在输入完后必须按Ctrl+Shift+Enter键来强制公式为数组公式。然而,我们已经习惯了在输入完后直接按Enter键,有没有一些技巧能够避免按Ctrl+Shift+Enter键但又能够达到数组公式的效果呢?
fanjy
2020/02/18
1.4K0
精通Excel数组公式021:提取唯一值列表并排序
本文将综合使用前面系列中学习到的技术,包括布尔逻辑、动态单元格区域、提取满足条件的数据、统计唯一值等,创建出一个解决问题的大型公式。当然,如果你不需要自动动态更新数据,完全可以使用Excel内置的高级筛选或数据透视表功能。
fanjy
2021/03/12
5.6K0
一篇文章精通 VLOOKUP 函数
相信不少人看到标题,立即嗤之以鼻,VLOOKUP 谁不会?是的,大家都会,但用的好的人不多。相信我,这篇文章一定可以算得上通俗易懂,又有深度的一篇文章,熟练掌握本文所讲内容,一定会在日常 Excel 处理时如鱼得水。
StoneWM
2018/08/30
1.5K0
Excel公式技巧83:使用VLOOKUP进行二分查找
VLOOKUP(lookup_value,table_array, col_index_num,[range_lookup])
fanjy
2021/06/01
2.8K0
Excel公式技巧83:使用VLOOKUP进行二分查找
精通数组公式16:基于条件提取数据
在Excel中,基于AND或OR条件从数据集中提取数据是经常要做的事。可以使用下列方法来实现:
fanjy
2021/03/12
4.7K0
Excel公式技巧24: Excel公式中的降维技术
看过前面一系列文章的朋友,一定会熟悉“重新定义数组维度”的概念。这是一项非常有用且非常重要的技术,使我们可以接受二维数组并将其转换为一维数组,同时将元素保留在该数组中。
fanjy
2020/03/25
2.5K0
Excel公式技巧24: Excel公式中的降维技术
推荐阅读
相关推荐
精通Excel数组公式15:使用INDEX函数和OFFSET函数创建动态单元格区域(续)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档