在Excel中创建自定义函数

joe*_*ing 5 excel excel-formula

这似乎是一个显而易见的事情,excel 必须有这个功能,我只是找不到它.

如何在不使用VBA的情况下创建自定义功能?(VBA太大了,导致安全警告等).

例如,我有一个包含几个非常复杂公式的电子表格.这些公式中的每一个都在几列中复制.每列有数百个条目,因此每个条目都会被复制数百次.如果我调整一些东西,那么我必须手动填写或将我的更改从一列复制到另一列.

一个简单的看起来像这样:
=(Payment1 - F $ 12)*12 +($ D21-H21)
但我想做的是:
= MyFunction(f $ 12,$ D21,H21)
并且具有实际的公式"MyFunction"只写了一次.

我发现了一些接近给我想要的东西.例如,在表格中,Excel将自动将公式中的更改复制到列的其余部分,从而节省了手动选择范围和执行"向下填充"的步骤.

它还允许从命名单元格中进行相对引用,这似乎等同于用户定义的无参数函数.

Sea*_*anC 4

如果您可以使用文本来创建公式,那么您可以定义一个名称来计算该函数。

在单元格 A2 中,创建名称EvalAbove,然后在引用到中输入=evaluate(A1)

新名称对话框

这样,您可以构造一个公式,
例如 B1 包含SUM,B2 包含=("="&B1&"(A2:A5)")
,并且在 B3 中,您可以将=EvalAbove

这意味着如果您更改B1中的公式名称,则B2将更改以显示更改后的公式,B3将更改以显示结果。

  • 请注意,这仍然算作启用宏的工作簿,但没有 VBA 代码,只有命名范围