如何引用单个单元格公式并在多单元格中相对应用?
解决方案
方法1:名称管理器+单元格模板(解决复杂公式编辑麻烦的问题)
你之前用名称管理器时觉得编辑复杂公式繁琐,其实可以换个方式:把复杂公式写在单元格里(比如G1),名称管理器只负责动态替换行号的逻辑,这样改公式直接在G1里操作就行:
- 在G1单元格输入你要复用的公式(行号用G1的行号,比如
=D1+E1&" is the sum!") - 打开「公式」选项卡→「名称管理器」,点击「新建」:
- 名称随便取,比如
DynamicCalc - 范围选当前工作表(避免影响其他表格)
- 引用位置填:
=EVALUATE(SUBSTITUTE(FORMULATEXT(Sheet1!$G$1),"1",ROW()))- 把
Sheet1换成你的工作表名字;如果G1不是第1行,就把"1"改成G1的行号
- 把
- 名称随便取,比如
- 之后在G2、G10这些需要的单元格里,直接输入
=DynamicCalc,就能自动算出对应行的结果,G1公式改了,这些单元格也会跟着更新
方法2:直接写动态公式(不用名称管理器,适合简单公式)
如果公式不复杂,也可以直接在目标单元格写公式,用INDIRECT动态匹配当前行:
比如在G2、G10里输入:
=INDIRECT("D"&ROW())+INDIRECT("E"&ROW())&" is the sum!"
这种方法不用名称管理器,但公式复杂时会显得啰嗦,不过比重新写整个公式省事
注意点
- 方法1里的
FORMULATEXT和EVALUATE需要Excel 2019及以上版本,Excel 365完全能用 - 如果G1的公式里有多个不同行的引用,得调整
SUBSTITUTE的写法(比如多次替换),但只要模板公式是用G1所在行做基准,就没问题
内容的提问来源于stack exchange,提问作者BruceWayne
相关产品推荐
相关产品推荐

