引用一组单元格的公式而不是值

引用一组单元格的公式而不是值

参考引用单元格的公式而不是 Excel 中的值?,我希望看看是否有人能帮助我解决这种情况:

我得到了几个电子表格“Result1”、“Result2”……“Result50”。电子表格的前几行包含具有类似引用的各种公式,例如:

细胞 公式
A1 =sum(A10:A20)
A2 =average(A10:A20)
A3 =counta(A10:A20)

在所有 50 个电子表格中。逐个修改公式会很困难。(例如 sum -> sumif,counta -> countif)所以我想知道我是否可以设置一个主电子表格“公式”(比如)来保存上述三个公式,并将这些“结果”电子表格上的单元格引用到“公式”中的单元格。

我知道正常引用只会给出值。但我真的想看看是否有更聪明的方法来处理这个问题。非常感谢。

答案1

我不知道这是否是你的意思,但请检查一下。

在此解决方案变体中,一个以一个参数(源地址)LAMBDA命名的定义函数会从具有给定地址的单元格中检索公式,执行该公式的主体,并将结果放置在调用的位置。 如果源公式引用没有限定符的单元格,则目标工作表中的公式将引用当前工作表中的相同单元格。CLONE

LAMBDA函数定义(在名称管理器中)

=LAMBDA(x, EVALUATE(FORMULATEXT(x)))

此公式使用旧的 XLM 宏函数EVALUATE,因此工作簿必须以宏兼容格式保存,例如 .xlsm

例如,在Formula工作表中的单元格中A1有一个公式:
=SUM(A10:A20)
Result1工作表中输入以下条目:

=CLONE(Formula!A1)

此公式计算 的值SUM(A10:A20),但参数来自工作表Result1。如果您现在将中
的公式更改为 ,中的结果将相应更改为。Formula!A1=AVERAGE(A10:A20)Result1AVERAGE(A10:A20)

答案2

我发现至少有两个技巧可以让你更轻松地完成这项任务。

第一的:创建一个命名范围,例如使用名称rangeForCalculate和公式INDIRECT("A10:A20"),并在所有公式中使用此名称:

=SUM(rangeForCalculate)
=AVERAGE(rangeForCalculate)
=COUNTA(rangeForCalculate)

诀窍在于,由于字符串中没有指定工作表名称“A10:A20”INDIRECT()将引用使用名称的同一工作表中的指定范围rangeForCalculate。现在要更改范围,只需更改此字符串“A10:A20”在命名范围内。

第二:保持原样。在编辑公式之前,按住 Ctrl 键单击所需工作表的选项卡以选择所需的工作表,或单击第一个选项卡并按住 Shift 键单击最后一个选项卡。现在编辑公式,更改后的公式将同时出现在所有选定的工作表中。

相关内容