ADDRESS 函数¶
函数概述¶
ADDRESS 函数用于根据行号与列号生成单元格地址文本(如 "A1"、"$B$3"、"Sheet1!C5")。它返回的是文本而不是引用本身,因此常用于:
- 动态拼接地址(配合
INDIRECT把文本地址转为可引用的单元格/区域) - 生成报表中的定位信息、提示信息
- 在公式中动态切换绝对/相对引用形式
- 生成可读的“行列坐标 → 地址”结果
基础语法¶
参数说明¶
| 参数 | 是否必填 | 类型 | 含义 | 常见取值/说明 |
|---|---|---|---|---|
row_num |
必填 | 数值 | 行号 | 1 表示第 1 行 |
column_num |
必填 | 数值 | 列号 | 1 表示 A 列,2 表示 B 列 |
abs_num |
选填 | 数值 | 控制绝对/相对引用形式 | 1~4(见下表),省略默认 1 |
a1 |
选填 | 逻辑值 | 返回 A1 引用还是 R1C1 引用 | TRUE/A1(默认),FALSE/R1C1 |
sheet_text |
选填 | 文本 | 工作表名称(或外部引用前缀) | 会拼在地址前,如 "Sheet1!A1" |
abs_num 对照表¶
| abs_num | 返回形式示例(row=5,col=3) | 说明 |
|---|---|---|
| 1 | $C$5 |
行列都绝对引用 |
| 2 | C$5 |
列相对、行绝对 |
| 3 | $C5 |
列绝对、行相对 |
| 4 | C5 |
行列都相对引用 |
基础用法示范¶
1)最基础:由行列号得到绝对地址¶
返回:$B$3(默认 abs_num=1,默认 A1)
适用:你只想得到一个“标准绝对地址文本”。
2)返回相对地址或混合引用¶
- 相对引用(行列都相对):
返回:B3
- 行绝对、列相对:
返回:B$3
- 列绝对、行相对:
返回:$B3
适用:需要把生成的地址用于填充、拼接、或与其他公式配合时控制锁定方式。
3)生成带工作表名的地址¶
返回:Sheet1!$C$5
适用:输出“定位信息”、生成跨表引用文本、制作动态链接/提示文本。
如果工作表名包含空格(如
销售 报表),Excel 通常会显示为带单引号:'销售 报表'!$C$5(显示效果可能因版本/输入而异)。
4)返回 R1C1 形式地址¶
返回:R5C3
适用:你更偏好 R1C1 表示法,或需要与采用 R1C1 思维的逻辑配合。
5)把“文本地址”变成真正引用¶
ADDRESS 本身返回文本,如果你要取到该单元格的值,可以这样:
含义:取 $B$3 单元格的值。
再比如:动态取“某行某列”的值(行号在 E2,列号在 F2):
适用:做动态报表、动态查值、按条件切换取值位置。
6)与 MATCH/XMATCH 搭配¶
示例思路:
MATCH/XMATCH找到“行位置/列位置”ADDRESS把位置变成地址文本- 需要取值则再用
INDIRECT
举例(演示写法):
返回:匹配到的行列交叉处的地址文本。
若要取交叉单元格的值:
适用:二维定位(行标题+列标题)并生成地址或取值。
总结¶
ADDRESS的核心作用:用行号+列号生成单元格地址文本。-
关键参数:
abs_num决定绝对/相对/混合引用(1~4)a1决定 A1 还是 R1C1(TRUE/FALSE)sheet_text可拼接工作表前缀
-
它返回的是文本,若要把地址“变成引用并取值”,通常与
INDIRECT搭配使用。 - 在动态定位、跨表引用文本生成、报表自动化方面非常实用。