【发布时间】:2020-04-24 13:25:26
【问题描述】:
如何用单元格引用替换它包含的公式,换句话说,“扩展”或“派生”单元格引用?
举个例子,我知道我可以使用 PV() 来计算它:假设我想计算给定金额、减量器、期数和贴现率的现值,并且在我的电子表格中:
A2:1(句点数)
B2:5000(金额)
C2:0,8(减速器)
G1:6%(贴现率)
如果我想在 D2 上计算最终结果,我必须输入:
=(B2*C2)*(1+$G$1)^(-A2)
(上面我故意用了一些不必要的括号)
但是,如果我愿意,为了调试,或者为了构建一个包含更多嵌套计算的更复杂的公式,请在单元格上写入:
D2: =E2*F2^G2
E2:=B2*C2
F2: =1+$G$1
G2:=-A2
这样我就可以检查计算的每个部分是否正常,并且最终公式是否“组装”得很好(或者轻松纠正可能出现的错误或更改它以计算其他值,例如未来值,我为此将删除 G2 上的减号)。
在完成这些步骤后,在单元格 D2 上使用一些功能/快捷方式/功能将替换
"=E2*F2^G2"
为
"=(B2*C2)*(1+$G$1)^(-A2)"
(即做 E2 → (B2*C2) F2 → (1+$G$1) 和 G2 → (-A2)) 以便将所需的公式建立在正确的位置,我可以摆脱临时单元格.
我能找到的最接近这种行为的是 formulatext() 函数,但它只适用于单个引用,并且总是包含“=”,如果我这样做,例如
=CONCAT(FORMULATEXT(E2);"*";FORMULATEXT(F2);"^";FORMULATEXT(G2))
结果
=B2*C2*=1+$G$1^=-A2
这不是我们想要的结果。
我期望找到的结果类似于选择公式的一部分并按 F9 并将其替换为值,但应用于函数或中间步骤。
【问题讨论】:
-
Excel 没有执行此操作的内置功能。这在理论上用 VBA 是可行的,但不是一项简单的任务。
-
不是 formulatext() 已经给了你 90% 的答案吗?你只需要摆脱所有的=。替代功能,也许?或者你想让它自动把整个公式切成小块,然后写出来?您也可以使用“评估公式”来分析公式。
标签: excel vba excel-formula shortcut substitution