EP10. “ADDRESS Function ADDRESS 函数”
🔒 登录后可标记已读- ADDRESS 函数根据「行号 + 列号」两个数字,生成一个文字形式的单元格地址
- 讲基础用法、怎么搭配 INDIRECT 把文字地址变成真正可用的引用
- 也讲跟 INDEX 函数配合查找最大值位置
- 前置知识是 EP09 的绝对引用概念
- 学完能处理需要「动态算出某个位置」的进阶查找场景
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| ADDRESS | =ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text]) | 根据行列号生成文字形式的地址 | =ADDRESS(8,5) → $E$8 |
| INDIRECT | =INDIRECT(ref_text) | 把文字形式的地址转成真正可用的引用 | =INDIRECT(ADDRESS(8,5)) |
| INDEX | =INDEX(array, row_num, [column_num]) | 从二维范围里按行列位置取值 | =INDEX(E4:F7,3,2) |
基础用法
=ADDRESS(8,5)返回$E$8(第 8 行、第 5 列,默认是绝对引用格式)=ADDRESS(3,7)返回$G$3(第 3 行、第 7 列)
ADDRESS 返回的是文字,不是真正的引用
ADDRESS 函数算出来的结果只是一段「看起来像地址的文字」,Excel 不会自动把它当成引用来读取数值。要真正拿这个地址去取值,需要搭配 INDIRECT 函数把文字转换成实际引用: =INDIRECT(ADDRESS(8,5))
生成相对引用
默认 ADDRESS 返回的是绝对引用格式(带 $)。如果想要相对引用格式,把第三个参数设成 4: =ADDRESS(8,5,4) 返回 E8(不带 $)
加上工作表名称
用第五个参数指定工作表名,让返回的地址带上工作表前缀: =ADDRESS(3,7,,,"Sheet2") 返回 Sheet2!$G$3
应用:查找最大值所在的位置
先用 MAX 或 MATCH 类函数找出最大值所在的行/列号,再用 ADDRESS 把这两个数字转成看得懂的单元格地址文字,方便直接标注「最大值在哪一格」。
搭配 INDEX 函数查值
INDEX 函数能从一个二维范围里,按「第几行、第几列」直接取出对应的值: =INDEX(E4:F7,3,2) 表示从范围 E4:F7 里取第 3 行、第 2 列的值,结果为 92。 ADDRESS/INDIRECT 和 INDEX 常常搭配使用,一个负责算出位置,一个负责按位置取值。
学完你会
- ✅ 能用 ADDRESS 根据行列号生成文字形式的单元格地址
- ✅ 能用 INDIRECT 把 ADDRESS 算出的文字地址转成真正可用的引用
- ✅ 能搭配 INDEX 函数,按行列位置从范围里取出对应的值
常见错误
- 忘记 ADDRESS 返回的是「文字」,直接把结果当引用用,公式没有效果
- 第三个参数(引用类型)没设对,需要相对引用时忘记设成 4,结果拖动公式后行为跟预期不一样
- INDEX 的行列号跟实际数据位置搞混,容易把「第几行」和「第几列」的参数顺序写反
Sources
Blog / Website: