Texto da fórmula em uma célula usada como referência para fórmula em células em diferentes folhas

1

A pasta de trabalho conterá dezenas de folhas e cada folha terá uma célula em algum lugar da folha com uma função que retorna uma frase de linguagem simples padronizada com base em várias pesquisas nessa folha. A função pode ser algo assim:

="The start date was "&A1&" and resulted in "&B1

Cada uma dessas planilhas tem valores em A1 e amp; B1 exclusivo para essa planilha, portanto, as referências de célula dentro da fórmula são idênticas em todas as planilhas. Isso significa que A1 em cada folha é uma data de início única e B1 é o resultado exclusivo de cada folha.

Aqui está o problema. A fórmula precisa ser editável na hora para todas as planilhas, e é por isso que quero mantê-la em uma única planilha "mestre" denominada referências em uma célula "principal" denominada ref_plainLang .

Aqui está outro problema. ONDE em cada folha, este resultado de fórmula de linguagem simples precisa aparecer diferente de uma folha para outra. Na Folha 1, a cadeia de caracteres simples precisa aparecer em C3, mas na Folha 2, ela aparece em D6, e esses locais também podem precisar mudar na hora. Eu sei como fazer isso com o VBA, mas quero uma versão não-macro porque é doloroso mudar a localização em cada folha com o VBA.

Aqui está o que não funciona. Na célula principal ref_plainLang , coloco o texto sem o sinal =:

"The start date was "&A1&" and resulted in "&B1

Em uma planilha diferente, eu digito

="="&ref_plainLang

e nessa célula agora aparece a função completa como seria digitada

="The start date was "&A1&" and resulted in "&B1

mas tudo ainda é texto.

Eu tenho mexido bastante com o Indirect (), já que isso parece a solução natural de alguma forma, mas não consegue fazê-lo funcionar. Se a ordem do texto e das referências não mudassem, eu adicionaria a função completamente em cada folha, armazenando cada seção da frase em linguagem simples como pedaços em células separadas em referências , algo como isso:

[named: ref_plainLang1] A1 = The start date was 
[named: ref_plainLang2] B1 = A1
[named: ref_plainLang3] C1 =  and resulted in
[named: ref_plainLang4] D1 = B1

Em seguida, junte-os na Folha 1, Folha 2, etc. com isto:

=ref_plainLang1&indirect(ref_plainLang2)&ref_plainLang3&indirect(ref_plainLang4)

Eu hesito em adotar essa abordagem se ela puder ser feita com apenas uma célula nomeada.

    
por Tisconie 25.05.2018 / 19:17

1 resposta

0

Esta é uma questão complexa, mas acho que você está perto do que precisa. Em vez de usar INDIRECT , eu usaria nomes simples e definidos e os reunirei em frases onde eles são necessários, ou (como você já começou), construa as frases em um lugar e atribua um nome definido às partes completas, e, em seguida, referencie esse nome.

Assumindo: Planilha ref_plainlang com os seguintes nomes definidos:

name              scope     refers to  
ref_startdate     workbook  =ref_plainlang!$A$1   
ref_resulted_in   workbook  =ref_plainlang!$B$1  
ref_text          workbook  =ref_plainlang$D$1

cell  value
A1    2018-01-01
B1    $100.00
D1    ="the start date was "&TEXT(ref_startdate,"yyyy-mm-dd")&" and resulted in "&TEXT(ref_resulted_in,"$0.00")

Com isso, em outra planilha, posso entrar:

="the start date was "&TEXT(ref_startdate,"yyyy-mm-dd")&" and resulted in "&TEXT(ref_resulted_in,"$0.00") 

ou

=ref_text

E ambos retornam a string the start date was 2018-01-01 and resulted in $100.00

    
por 25.05.2018 / 20:34