是否可以定义一个 excel lambda 函数,该函数接受一个参数作为表的“动态”名称,然后在结构化引用中使用,而不使用 INDIRECT 函数?
我希望能够定义一个帮助方法,允许用户实际上使用一个表来定义一个字典结构,其中一个字符串作为键,一个元组作为值,然后,挑选出特定的部分元组。
下面是一个名为“变量”的示例表:
多变的 | 初始值 | 初始单位 |
---|---|---|
压力 | 1 | 自动取款机 |
体积 | 4 | 大号 |
大量的 | 10 | G |
温度 | 30 | C |
气体 | 0.7 | 大气压*L/g*C |
我想要的行为是能够定义一个用户可以调用的 lambda,如下所示:
=l.Variable("Variables","mass","Initial Value")
(结果是10
)
到目前为止,我只能通过使用以下INDIRECT
函数来实现这个特定的界面:
=LAMBDA(Table,Var,Prop,
INDEX(
INDIRECT(Table & "[#All]"),
MATCH(Var,INDIRECT(Table & "[[#All],[Variable]]"),0),
MATCH(Prop,INDIRECT(Table & "[#Headers]"),0)
)
)
如果我想避免使用INDIRECT
,我必须硬编码特定的表名:
=LAMBDA(Var,Prop,
INDEX(
Variables[#All],
MATCH(Var,Variables[[#All],[Variable]],0),
MATCH(Prop,Variables[#Headers],0)
)
)
我运气不好?有没有更好的方法来做我想做的事情?
我已链接到使用硬编码方法和INDIRECT
以下方法的工作簿:
https://www.dropbox.com/s/344rfrrzhjjr6z2/superuser-lambda-question.xlsx?dl=0