【发布时间】:2019-08-11 02:32:33
【问题描述】:
是否可以在“名称管理器”中创建一个新名称并引用 - 评估其中包含函数但函数本身包含一个或多个变量的单元格,该变量也使用“名称管理器”中定义为名称评估功能? 我试过了,但它给了我一个“#Value!”警告。
假设有两个函数:x = 1 + 1;和 y = x + 1。 我想得到结果x和y。 所以我把 1+1 放在单元格 A1 中,然后转到名称管理器并创建一个名为 x 的名称并引用:=if(NOW(),evaluate(A1))。然后转到单元格 B1 并输入 =x,它会显示 2 的结果。好的,它适用于 x。 然后我将 x+1 放在单元格 A2 中,然后转到名称管理器并创建一个名为 y 的名称并引用 =if(NOW(),evaluate(A2))。然后转到单元格 B2 并输入 =y 但它显示#VALUE!错误
我希望它会给我 3 的结果。有没有人会导致这个错误以及如何解决它?谢谢。
【问题讨论】:
-
你真的需要使用 EVALUATE() 吗?对于您的示例,定义 Namexp1=1+1 和 Namexp2=nameexp1+1 工作正常。 (旧的 XLM EVALUATE 函数存在许多错误/怪癖)
-
嗨,Charles,上面的函数只是示例,以便于理解。事实上 1+1 是另一个包含在 Name Manger 中定义的变量的函数。一开始我以为是因为不允许多次使用evaluate。但后来我为 y 尝试了以下方法,它奏效了。 =if(现在(),评估((评估(A1)+1)))。所以我想不出我原来的方法不起作用的任何原因。 (我也需要在其他函数中使用变量 x)
-
EVALUATE 有很多限制:您可能遇到了其中之一。您还没有解释为什么需要使用 Evaluate。顺便说一句,您最多可以将名称嵌套到 64 级。但是名称引用的循环链(NameA 指的是 NameB,NameB 指的是 NameA)导致 Excel 因堆栈溢出而崩溃