Considere:
=SUM(J1,INDIRECT(CONCATENATE("$j","$",VALUE(4-1))))
Aqui está a fórmula que estou tentando fazer funcionar:
=Sum(J1,concatenate("$j","$",value(4-1)))
.
O que eu quero é o resultado: sum(J1,J3)
, mas o que recebo é uma mensagem de erro. Se eu avaliar a fórmula, o penúltimo resultado será: sum($j$1,"$j$3")
.
De onde vêm essas aspas e como posso me livrar delas?
Atenciosamente,
T. van Ellen, Bélgica
É isso que você está procurando?
=SUM(INDIRECT(CONCATENATE("$J$1,$J$",VALUE(4-1))))
Ele está alimentando a função Sum () os endereços de célula convertidos pela função Indireta ().
Estou perdendo uma explicação sobre por que as coisas não estão funcionando, e é por isso que estou postando uma resposta.
A função SUM
calcula apenas o número total de células e requer uma célula ou intervalo de células como parâmetros.
A função Concatenate
retorna o texto e não uma célula ou um intervalo de células.
Como o nativamente excel não é suficiente para tentar se o texto contiver uma célula, o excel introduziu uma função que pode traduzir um texto contendo uma referência a uma célula para um intervalo real de células.
A função é chamada indirect
.
A função indirect
pode pegar uma célula ou texto como entrada e retorna um intervalo de células.
Sua fórmula se tornaria
=SUM($J$1, INDIRECT(CONCATENATE("$J$",VALUE(4-1))))
Ou, se você quiser copiar a célula para outra e transpor automaticamente a fórmula, ela se tornará
=SUM(J1, INDIRECT(CONCATENATE("J",VALUE(4-1))))