
在Excel中,我们可以使用一些函数来引用数据范围,当数据更新时相应的引用也能够自动更新。
这能够提升我们处理和运算数据的效率,无需手动去更改变动数据范围,从而减少人工失误。
我们可以通过自由搭配组合多个函数进行自动引用,如indirect、macth、offset、index、address等函数。
这些函数是 Excel 中强大且灵活的函数,用于处理各种数据和建立动态的引用。

以下是这些函数的简要介绍:
1. INDIRECT 函数:
INDIRECT 函数用于返回由文字字符串指定的单元格或区域的引用。
基本语法:INDIRECT(ref_text, [a1])
ref_text 是一个表示单元格引用的字符串,[a1] 是一个可选的布尔值,如果为 TRUE(默认值)则表示引用采用 A1 样式,为 FALSE 则表示采用 R1C1 样式。
假设每个月的销售数据都存放在同个工作簿的不同工作表的"B2:B8"范围内,另起工作表,并命名为总表,用来计算每个月的销售总额。
可以使用以下的公式:
=SUM(INDIRECT("'"&A2&"'!$B$2:$B$8"))

2. MATCH 函数:
MATCH 函数用于查找指定值在区域中的位置。
基本语法:MATCH(lookup_value, lookup_array, [match_type])
lookup_value 是要查找的值,lookup_array 是包含要搜索的值的单元格范围,match_type 是一个可选的数值,用于指定匹配方式。
假设你有一个销售表,包含销售员、商品、销量三列,可以通过指定销售员和商品,动态查到对应的销量。
=INDIRECT("C"&MATCH(F2&G2,$A$1:$A$13&$B$1:$B$13,0))

3. OFFSET 函数:
OFFSET 函数根据指定的偏移量,返回某个单元格范围的引用。
基本语法:OFFSET(reference, rows, cols, [height], [width])
reference 是原始单元格的引用,rows 和 cols 是要偏移的行数和列数,height 和 width 是可选参数,用于指定范围的高度和宽度。
假设你有一个销售表,其中每个月的销售数据存放在不同的列中,需要快速求出销量总和,可以通过OFFSET结合SUM函数来进行求和,公式如下:
=SUM(OFFSET(A1,0,0,COUNTA(A:A),COUNTA(1:1)))
该公式计算从单元格A1开始,向下延伸到列A所有非空单元格,并且向右延伸到第1行中所有非空单元格,所包含的区域内的所有数字之和。
该函数还可以用于创建数据透视表的动态范围引用哦,倘若有数据新增,只要刷新透视表就能同步数据哟!

4. INDEX 函数:
INDEX 函数返回指定索引的单元格的值。
基本语法:INDEX(array, row_num, [column_num])
array 是要从中返回值的数组或区域,row_num 和 column_num 是要返回值的行号和列号。
假设你有一个销售表,其中每个月的销售数据存放在不同的列中,可以通过指定月份和商品,动态查到对应的销量。
首先通过MATCH(K2,A1:G1,0)找到对应商品的位置,再通过MATCH(L2,A1:A5,0)找到月份对应位置,再结合INDEX返回对应的销量,公式如下:
=INDEX(A1:G5,MATCH(L2,A1:A5,0),MATCH(K2,A1:G1,0))

5. ADDRESS 函数:
ADDRESS 函数返回指定单元格的地址。
基本语法:ADDRESS(row_num, column_num, [abs_num], [a1], [sheet])
row_num 和 column_num 是要返回其地址的单元格的行号和列号,
abs_num 是一个可选参数,用于指定绝对引用的形式,a1 用于指定地址采用 A1 样式还是 R1C1 样式,sheet 是一个可选参数,用于指定包含单元格的工作表的名称。
使用 ADDRESS 函数动态引用一个数据范围,例如,从一个指定的起始单元格到一个结束单元格,可以结合使用 ADDRESS 函数和INDEX、MACTH函数来创建这个动态范围的地址。
公式如下:
=ADDRESS(MATCH(TRUE,INDEX(A:A<>"",0),0),1) & ":" & ADDRESS(MATCH(1E+99,A:A),1)

这些函数在 Excel 中通常用于创建动态的引用、执行查找和返回特定单元格的值或引用。
通过结合使用这些函数,可以实现许多复杂的数据处理和分析操作。若您对此感兴趣,也想分享经验,欢迎评论区留言哦~
下期预告:动态求和:怎样自动获取求和区域?