您能否在 Excel 中将公式应用于公式而不是值?

您能否在 Excel 中将公式应用于公式而不是值?

例如,如果单元格 A1 包含函数,=SUM(B1:B6)是否有办法我可以使用公式SUBSTITUTE(A1,"SUM","COUNT")来返回该公式=COUNT(B1:B6)

或者,是否存在一个公式可以返回已输入的内容 - 即=SUM(B1:B6)以字符串而不是值的形式返回?

答案1

从 2013 版开始有FORMULATEXT可用版本。

因此,您可以同时使用两者
FORMULATEXT(A1)

SUBSTITUTE(FORMULATEXT(A1),"SUM","COUNT")
其次,将公式作为文本,您无法对其进行评估。

对于 2010 之前的版本,您只能使用 VBA 来完成。

答案2

这实际上是对 Máté Juhász 答案的补充,而不是对问题的完整解决方案。答案是包含图像的唯一方法,并且这种方法可能受限于它适用于哪些版本的 Excel。

我在问题和 Máté 的回答的评论中提到了 EVALUATE 函数。我无法使用 Excel 2013(也不知道 Máté 对此进行了多大程度的测试)。我在 Excel 2007 上做了一个快速测试,不幸的是,它不支持 FORMULATEXT 函数。所以我无法将其直接应用于该答案。但是,这是它使用方式的本质;它需要适应实际的解决方案。

截屏

单元格 A1 包含问题中的原始公式。A2 包含替换的文本(由于不支持 FORMULATEXT,因此必须对 A1 公式进行硬编码)。A3 是对命名范围的引用,其中包含应用于替换公式的 EVALUATE 函数。

如果这在 Excel 2013 中有效,解决方案将如下所示:

创建一个命名范围(称之为“公式”),定义为:

=EVALUATE(SUBSTITUTE(FORMULATEXT(A1),"SUM","COUNT"))

参考命名范围来获得结果:

=formula

相关内容