主表中的EXCEL公式

时间:2012-11-12 17:14:41

标签: excel excel-formula vlookup excel-indirect

我希望能够在“主表”中输入公式。调用时,该公式将在调用公式的工作表上执行。

示例:

Sheet 1 (master sheet)
Col A    Col B
ABC      A1 
DEF      A2xA2
GHI      A3-A1 * .05
JKL      A4+A1

Sheet 2
Col A    Col B     Col C
5        DEF       
10       ABC
15       GHI
20       JKL

所以我想要发生的是我在Sheet2上输入Col B以执行Sheet 1(Master Sheet)上相对于Sheet 2上相应列的公式。所以在上面的例子中,Sheet 2的第1行为Col C将是25.我正在尝试VLOOKUPINDIRECT的混合。如果它只是单元格引用,如Sheet1上的ABC,它工作正常。如果我进入任何其他人,它就会爆炸。由于VLOOKUP工作正常,有什么能够“执行”公式或评估公式吗?或者,当不仅仅是直接的单元格引用时,如何间接工作。

我对VBA解决方案不感兴趣,我想使用直接的excel函数。

1 个答案:

答案 0 :(得分:1)

使用VBA很容易,因为您可以在调用Excel的Evaluate函数的模块中创建UDF,该函数在工作表中不可用:

Function Eval(ByVal r As Range)
    Application.Volatile True
    Eval = Evaluate(r.Value)
End Function

然后,如果您在单元格C1中将SUM($ A $ 1:$ A $ 10)作为文本,要将该文本作为公式在另一个单元格中执行,您只需输入:

=Eval(C1)

如果确实必须避免使用VBA,则在定义名称时可以使用Evaluate函数。因此,通过上面在C1中使用SUM($ A $ 1:$ A $ 10)的示例,您可以定义一个名为SumCol的新名称,该名称引用以下内容:

=Evaluate($C$1)

然后你可以将SumCol放入一个单元格中:

=SumCol

但我认为定义一堆这样的名字会变得单调乏味。