在上一期中,我们主要介绍了Excel中关于INDIRECT函数的应用,与之常结合在一起使用的另一个函数是ADDRESS,也就是本期的主题。
我们可通过ADDRESS函数,提供行号和列号来构造一个单元格地址如“A1”或“R1C1”。
在查询“Agent Name”的案例中,我们通过INDIRECT函数,以文本的形式确定了“G”列,但这种方法不够灵活,若查询列表的位置发生了变动,INDIRECT函数便会出错,所以我们要以ADDRESS函数来确定我们所需要的单元格地址,使其应用更加灵活。

01 ADDRESS函数基础
我们先来看一下ADDRESS函数的基础用法,该函数的前两个参数row_number(行号)和column_number(列号)为必要参数。

仅输入前两个必要参数,ADDRESS函数返回的单元格地址默认使用绝对引用,即添加了“$”符号。

ADDRESS函数的第三个参数[abs_num]为可选参数,我们可以选择使用相对应用或混合引用(仅锁定行或列)的方式。

ADDRESS函数的第四个参数为可选参数,我们可选择单元格地址的不同风格。

可以指定

02 ADDRESS函数的应用
我们先来看一个简单的应用:查询某个名称的范围,具体来说该名称范围的起始单元格位置。
当前的工作表中的“County List”及其下面的数据已创建了相应的名称,我们要通过ADDRESS函数来查询该名称的首个单元格位置。

分别通过ROW函数和COLUMN函数来获取行号和列号,按Enter键后可得到名称的首个单元格位置“$F$2”。

如果要得到“County List”名称范围的最后一个单元格位置,我们可以按照如下操作进行。

在计算最后一个单元格的行号时,注意我们还使用了ROWS函数,ROW函数返回名称范围的首个单元格行号,此例中为“2”,ROWS函数则返回名称范围的行数,此例为“13”,因此后面再减去1,才可得到名称范围最后一个单元格的行号。

03 ADDRESS函数用于INDIRECT函数中
我们再回到案例——查询“Agent Name”中,在C11单元格中输入INDIRECT函数,其参数使用ADDRESS函数,注意ADDRESS函数的第一个参数:ROW函数返回“County List”名称范围的首个单元格行号(“2”),加上MATCH函数返回相应“County”(“Buckinghamshire”)在“County List”中的位置,再减去1;第二个参数:COLUMN函数返回“County List”名称范围的列号,加上1(因“Agent Name”数据列在“County List”右侧一列)。

按Enter键后,我们可以得到相应的结果,并且即使移动了整个“County List”数据表的位置,该查询结果也不会变。

本期的ADDRESS函数介绍至此,我们介绍了该函数的语法规则,基础应用以及稍复杂些的应用,也了解其对于我们在进行数据查询时所带来的灵活性。
书到用时方恨少,事非经过不知难。——陆游