ADDRESS函数基于行和列号以文本形式返回单元格地址,可以以A1样式或R1C1样式返回绝对或相对地址。在结果中也可以包括工作表名。
什么情况下使用ADDRESS函数?
ADDRESS函数能够返回单元格地址,或者与其它函数一起来:获取行和列号表示的单元格地址;查找行和列号表示的单元格值;返回最大值的单元格地址。
ADDRESS函数语法
ADDRESS函数的语法如下:
ADDRESS(row_num,column_num,[abs_num],[a1],[sheet_text])
abs_num — 如果为1或忽略,则是绝对地址($A$1);对于相对地址(A1),使用4;其它选项2=A$1, 3=$A1
a1 — 如果为TRUE或忽略,那么返回A1样式;FALSE代表R1C1样式
sheet_text — 可以包括工作表名,代表在不同工作表中的地址
ADDRESS陷阱
ADDRESS函数仅返回代表单元格地址的文本。如果需要单元格值,将ADDRESS函数包括在INDIRECT函数中,或者使用示例2中使用的某个公式。
示例1:获取行和列数表示的单元格地址
使用ADDRESS函数,可以获取单元格地址为文本,基于行号和列号。如果只是输入两个参数,那么结果是A1样式的绝对地址。
=ADDRESS($C$2,$C$3)
绝对引用或相对引用
在上面的公式中忽略abs_num参数,结果是缺省的,即绝对引用。
为了以相对引用查看地址,可以对abs_num参数使用4。
=ADDRESS($C$2,$C$3,4)
A1样式或R1C1样式
要查看R1C1样式代替缺省的A1样式, style, you can add FALSE in the a1 argument.
=ADDRESS($C$2,$C$3,1,FALSE)
工作表名
最后一个参数是工作表,可以包括需要在结果中显示的工作表名。
=ADDRESS($C$2,$C$3,1,TRUE,”Ex02″)
示例2:查找行和列数表示的单元格值
ADDRESS函数返回单元格地址为文本,而不是实际的引用。如是要希望返回单元格的值,需要在ADDRESS函数外再使用INDIRECT函数。
=INDIRECT(ADDRESS(C2,C3))
INDIRECT函数也可以单独使用,而不需要ADDRESS函数。下面,&操作符用于创建R1C1样式的地址,返回单元格值。
=INDIRECT(“R” & C2 & “C” & C3,FALSE)
INDEX函数也可以基于行和列号返回单元格的值。
=INDEX(1:500,C2,C3)
示例3:返回最大值的单元格地址
在本例中,查找带有最大值的单元格,使用ADDRESS函数获取其地址。
MAX函数查找C列中的最大值。
=MAX(C3:C8)
接下来,ADDRESS函数与MATCH函数结合,MATCH函数查找行号,COLUMN函数获得列号。
=ADDRESS(MATCH(F3,C:C,0),COLUMN(C2))