Saudações!
Uma dúvida que já resolvi em algum momento da vida, mas por estar meio enferrujado, esqueci como se faz.
Tendo conteúdo de uma célula, preenchido como resultado de uma fórmula (ex.: =TEXTO(ENDEREÇO(PROC(2;1/--(A3:A1006<>"");LIN(A3:A1006));2);"#####") - desmembrando: ENDEREÇO(PROC(2;1/--(A3:A1006<>"");LIN(A3:A1006));2) - vai buscar qual a última célula preenchida em uma coluna - sem utilizar o VBA, e TEXTO(... tranforma o resultado em um texto no formato "#####") (caractere com 5 posições.
Vai retornar algo como $B$74
Aplicar o conteúdo desta fórmula acima, na posição (exemplo):
=SE(C11<>"";SEERRO(PROCV(D11;Consumação!$B$2:$E$1000;4;0)*H11;0);"")
OU seja, substituir o $E$1000 (que alliás é uma solução muito feia!!!), pelo resultado da fórmula acima citada como exemplo ($B$74)
Já tentei CONCATENAR utilizando &""&, mas não rolou
Já tentei colocar a fórula toda em uma outra célula, completando com CONCATENAR e depois trazendo de volta de novo, não rolou também.
Procurando por uma forma elegante de resolver este probleminha. Se alguem puder ajudar, agradeço.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Olá, Anselmo!
Então, se vc fizer a concatenação direto vai retornar erro, pelo o que eu entendi vc quer pegar o resultado de uma fórmula que retorna o endereço da última célula e apontá-lo como parte da referência do 2º argumento do procv. Para isso, vc terá de utilizar a fórmula indireto assim:
=SE(C11<>"";SEERRO(PROCV(D11;Indireto("Consumação!$B$2:"&$B$74);4;0)*H11;0);"")
Obs.: Se o resultado estiver diretamente nesta célula, eu particularmente, nem usaria o procv e já usaria o Indireto e multiplicaria por H11 direto e se estiver em outra coluna, ou seja, vc quer apenas a referência de linha faria algum jogo para apontar a coluna correta e só pegaria a linha e assim por diante... Como não em que contexto vc está utilizando esta fórmula, então não consigo visualizar algo a mais que poderia simplificar
Espero que tenha ajudado,
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Para substituir parte de uma fórmula com base no resultado de outra fórmula, você pode usar a função INDIRECT no Excel. Aqui está um exemplo de como fazer isso:
Coloque a fórmula que retorna o endereço desejado em uma célula separada. Vamos supor que essa fórmula esteja na célula E1:
less
Copy code
=TEXTO(ENDEREÇO(PROC(2;1/--(A3:A1006<>"");LIN(A3:A1006));2);"#####")
Na fórmula em que você deseja substituir parte do endereço, você pode usar a função INDIRECT combinada com a função SUBSTITUTE para substituir o valor desejado. Vamos supor que a fórmula original esteja na célula F1:
less
Copy code
=SE(C11<>"";SEERRO(PROCV(D11;Consumação!$B$2:SUBSTITUTE(INDIRECT("$" & E1);"!$";"!");4;0)*H11;0);"")
Nesse exemplo, usamos a função SUBSTITUTE para substituir "!$" por "!" no resultado da fórmula E1. Em seguida, usamos a função INDIRECT para interpretar o resultado como uma referência válida.
Certifique-se de ajustar as referências das células e dos intervalos nas fórmulas de acordo com a sua situação específica. Espero que isso resolva o seu problema!
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.