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樣式查看,可以設置a1參數值為FALSE。
=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))