Excel公式中的临时variables

=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),-4,2+MATCH(MIN(OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,3,1,10)), OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,3,1,10), 0),1,1) 

在上面的例子(不考虑它是什么),我必须评估两次完全相同的expression式: OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,3,1,10)

有没有办法在公式中dynamic添加variables? 所以我们存储一次结果,并在公式内部简单地引用它? 这是一个例子,计算几次相同的东西的成本没有影响,但更昂贵的通话或计算呢?

我正在考虑recursion函数语言(如Caml)中存在的一些function。

你可以用一个简单的相对单元格引用replace间接(地址(row(),Column()),但要回答你的问题:

是的,可以使用Laurent Longre的MOREFUNC插件 – 它具有SETV和GETVfunction,可以完全按照您的需要进行操作。

如果你的问题涉及到编写公式的便利,名称pipe理器就是你要找的。 请参阅选项卡“公式”中的function区菜单。 点击“新build”

名称:MyArray

范围:工作簿

指的是:= OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,3,1,10)

如果你的问题涉及到计算成本,我相信你唯一的解决办法是将中间结果物理地存储在一个额外的列或单独的工作表中。