母版表格中的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
但是我想这样定义一堆名称会变得很乏味。
间接
函数使用单元格引用
而不是算术函数。检查间接
函数使用单元格引用
而不是算术函数。检查