4

假设我在 cell 中有一个函数名称A1like ,在andSUM中有一些数据。有没有办法在一个单元格中定义一个公式,以便它调用定义在其中的公式并让它作为数据工作?B1C1A1B1C1

所以像:
=A1(B1:C1)应该等于,=SUM(B1:C1)因为它A1包含这个词SUM

本质上,可能是 C 中的预处理器宏或函数指针之类的东西。

4

2 回答 2

5

您可以通过在模块中创建用户定义的函数来使用 vba:

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

如果你把SUMA1放进去,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它应该返回结果

但这种方法不太灵活。

于 2012-04-24T17:26:28.150 回答
1

如果您想改用公式,则可以使用 SUBTOTAL() 函数。但是,它有点有限。

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

查看此链接了解更多信息: http: //office.microsoft.com/en-us/excel-help/subtotal-function-HP010062463.aspx

在此处输入图像描述

于 2012-04-24T17:44:02.123 回答