例如,如果单元格 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