假设我在 cell 中有一个函数名称A1
like ,在andSUM
中有一些数据。有没有办法在一个单元格中定义一个公式,以便它调用定义在其中的公式并让它作为数据工作?B1
C1
A1
B1
C1
所以像:
=A1(B1:C1)
应该等于,=SUM(B1:C1)
因为它A1
包含这个词SUM
。
本质上,可能是 C 中的预处理器宏或函数指针之类的东西。
您可以通过在模块中创建用户定义的函数来使用 vba:
Public Function applyFunction(functionName As Range, argument As Range) As Variant
applyFunction = Evaluate(functionName & "(" & argument.Address & ")")
End Function
如果你把SUM
A1放进去,B1、B2、B3里面有1、2、3,=applyFunction(A1,B1:B3)
会返回6。相当于调用=SUM(B1:B3)
.
编辑
如果您真的不想使用 VBA,您可以创建一个名称(我认为在 excel 2003 中插入名称,在 Excel 2010 中定义名称):
eval1
)=EVALUATE(A1&"(B1:B3)")
,其中 A1 包含 SUM 而 B1:B3 是包含数字的范围=eval1
它应该返回结果但这种方法不太灵活。
如果您想改用公式,则可以使用 SUBTOTAL() 函数。但是,它有点有限。
查看图片。它使用对小计的功能编号的引用。如果要使用函数的名称,可以通过创建 vlookup 函数来扩展它,但您还必须提供一种方法来确定使用常规函数 num 还是忽略数据范围中隐藏值的 101 类型值.
查看此链接了解更多信息: http: //office.microsoft.com/en-us/excel-help/subtotal-function-HP010062463.aspx