评估另一个单元格中定义的公式

假设我在单元格A1有一个函数名,比如SUM ,还有一些数据在B1C1 。 有没有办法在一个单元格中定义一个公式,以便它调用在A1定义的公式,并将它作为B1C1作为数据工作?

所以像这样:
=A1(B1:C1)应该等于=SUM(B1:C1)因为A1其中包含字SUM

基本上,像C中的预处理器macros或函数指针可能是这样的。

你可以通过在模块中创build一个用户定义的函数来使用vba:

 Public Function applyFunction(functionName As Range, argument As Range) As Variant applyFunction = Evaluate(functionName & "(" & argument.Address & ")") End Function 

如果在A1中放置SUM ,而B1,B2,B3, =applyFunction(A1,B1:B3)则返回6.这相当于调用=SUM(B1:B3)

编辑

如果你真的不想使用VBA,你可以创build一个名称(在Excel 2003中插入名称,我想,在Excel 2010中定义名称):

  • 定义一个新的名字(比方说eval1
  • 在引用区域中,input=EVALUATE(A1&"(B1:B3)") ,其中A1包含SUM,B1:包含数字的范围
  • 在一个空白单元格中input=eval1 ,它应该返回结果

但是这种方法不够灵活。

如果您想要使用公式,则可以使用SUBTOTAL()函数。 但是,这是有限的。

看看图像。 它使用对小计的函数编号的引用。 如果要使用函数的名称,可以通过创build一个vlookup函数来扩展它,但是还必须提供一种方法来确定使用常规函数num或忽略数据范围中隐藏值的101型值。

看看这个链接的更多信息: http : //office.microsoft.com/en-us/excel-help/subtotal-function-HP010062463.aspx

在这里输入图像描述