母版表格中的EXCEL公式

母版表格中的EXCEL公式,excel,excel-formula,vlookup,excel-indirect,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 所以我想做的是,我

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

例如:

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
所以我想做的是,我在第2页的B列中键入任何内容,以执行第1页(主表)上相对于第2页上相应列的公式。因此,在上面的例子中,第2页C列的第1行是25。我试着混合使用
VLOOKUP
INDIRECT
。如果它只是单元格引用(如表1上的ABC),则工作正常。如果我进入其他任何一个,它就会爆炸。既然
VLOOKUP
工作正常,那么是否有任何东西可以“执行”公式或计算公式?或者,当不只是一个直单元格引用时,如何使间接引用起作用


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

使用VBA很容易,因为您可以在调用excel求值函数的模块中创建自定义项,该函数在工作表中不可用:

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

但是我想,定义一堆这样的名称会变得单调乏味。

使用VBA很容易,因为您可以在调用Excel评估函数的模块中创建自定义项,该函数在工作表中不可用:

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

但是我想这样定义一堆名称会变得很乏味。

间接
函数使用
单元格引用
而不是算术函数。检查
间接
函数使用
单元格引用
而不是算术函数。检查