É possível definir uma função lambda do Excel que recebe um parâmetro que atua como um nome "dinâmico" para uma tabela, que é então usada em uma referência estruturada, sem usar a função INDIRETA ?
Minha esperança é ser capaz de definir um método auxiliar que permita aos usuários, de fato, usar uma tabela para definir uma estrutura de dicionário com uma string como chave e uma tupla como valor e, em seguida, extrair partes específicas desse tupla.
Uma tabela de exemplo chamada "Variáveis" está abaixo:
Variável | Valor inicial | Unidade inicial |
---|---|---|
Pressão | 1 | caixa eletrônico |
Volume | 4 | eu |
massa | 10 | g |
Temperatura | 30 | C |
Rgas | 0,7 | atm*L/g*C |
E meu comportamento desejado é poder definir um lambda que os usuários possam chamar assim:
=l.Variable("Variables","mass","Initial Value")
(com o resultado sendo 10
)
Até agora, porém, só posso alcançar essa interface específica empregando a INDIRECT
função:
=LAMBDA(Table,Var,Prop,
INDEX(
INDIRECT(Table & "[#All]"),
MATCH(Var,INDIRECT(Table & "[[#All],[Variable]]"),0),
MATCH(Prop,INDIRECT(Table & "[#Headers]"),0)
)
)
Se, em vez disso, eu quiser evitar o uso de INDIRECT
, tenho que codificar o nome da tabela específica:
=LAMBDA(Var,Prop,
INDEX(
Variables[#All],
MATCH(Var,Variables[[#All],[Variable]],0),
MATCH(Prop,Variables[#Headers],0)
)
)
Estou sem sorte? Existe uma maneira melhor de fazer o que estou tentando fazer?
Eu vinculei a uma pasta de trabalho que usa a abordagem codificada e a INDIRECT
abordagem abaixo:
https://www.dropbox.com/s/344rfrrzhjjr6z2/superuser-lambda-question.xlsx?dl=0