Página 1 de 1

Arrastando fórmulas com referências a outras sheets

Enviado: 05 Out 2019 às 18:06
por JDuro
Pessoal, tenho uma dúvida que desejava ver se me podem ajudar:

1. Numa sheet tenho uma listagem de dados sobre fornecedores, pagamentos e facturações, que abrange mais de uma centena de linhas e algumas 12 colunas.

2. Numa outra sheet, tenho um modelo de facturas onde muitos dos dados estão sendo buscados da 1ª sheet, através de fórmulas simples de =!Folha1C3... D3, E3, etc.

3. O problema é que ao arrastar o modelo da factura pela sheet abaixo de modo a ter uma factura por cada linha/fornecedor da 1ª Sheet, estas fórmulas não passam de =!Folha1C3... D3, E3 para =!Folha1C4... D4, E4 mas sim para de =!Folha1C28... D28, E28, conforme o número de linhas de intervalo entre as células arrastadas.

Será que conseguem perceber a questão? Não tenho um documento que possa publicar, por isso peço desculpa, mas se for preciso improviso um.

Abraço,
João

Arrastando fórmulas com referências a outras sheets

Enviado: 05 Out 2019 às 18:31
por Estevaoba
Para facilitar a criação e teste de fórmulas, favor postar uma planilha exemplo com algumas linhas da sua planilha real, dados fictícios, e coloque manualmente o resultado esperado, explicando por que ele deve ser assim.
Clique em +Resposta, Adicionar um anexo.

Ab.

Re: Arrastando fórmulas com referências a outras sheets

Enviado: 06 Out 2019 às 16:52
por JDuro
Boas,

Segue então um exemplo fictício do excel que descrevi. Na folha 2, destaquei a verde na 1ª factura as fórmulas que vão buscar informação da folha 1, no caso à linha 2 que também está a verde.

O meu objectivo é conseguir uma forma que permita que as facturas da folha 2 busquem correctamente a informação da folha 1, tendo em consideração que o excel original tem centenas de linhas na folha 1 e portanto terei de ter centenas de facturas na folha 2. Não dá para corrigir as fórmulas :D

Julgo que a forma mais natural será arrastar a 1a factura pela folha abaixo, mas não consigo fazer com que as fórmulas saltem apenas uma linha da informação da folha 1.

Resumindo: o que quero é que as células da folha 2 correspondam à informação da folha 1, conforme as cores.

Olhando ao excel será mais fácil ;)

Abraço

Re: Arrastando fórmulas com referências a outras sheets

Enviado: 06 Out 2019 às 18:17
por Estevaoba
Fiz usando a função DESLOC com a seguinte fórmula em C9:
Código: Selecionar todos
=DESLOC(Folha1!$D$2;CONT.SE(D$7:D9;$D$7)-1;0)
Copie para os outros campos ajustando a referência para Folha1!$D$2 e para o intervalo de CONT.SE(D$7:D9;$D$7).

Depois copie o intervalo B1:E25 da primeira fatura e cole em B26 para a segunda fatura, e assim por diante.

Confira no anexo, faça testes e veja se atende.

Good luck!

Arrastando fórmulas com referências a outras sheets

Enviado: 08 Out 2019 às 10:38
por JDuro
Viva,

Muito obrigado.
Não sei se estou a fazer algo mal, mas as fórmulas dão erro.
Aparentemente, as fórmulas estão iguais ao seu excel, mas dá-me a mensagem #NOME?
Deixo o meu excel em anexo (já com as fórmulas que me deu) para ver se consegue ajudar-me a identificar o problema.

Obrigado.
João

Re: Arrastando fórmulas com referências a outras sheets

Enviado: 08 Out 2019 às 12:53
por Estevaoba
De nada, João. É um prazer ajudá-lo.

No seu último arquivo, somente a fórmula em C9 estava correta:

=DESLOC(Folha1!$D$2;CONT.SE(D$7:D9;D$7)-1;0)
Observe que, como o texto "Data" sempre ocorre no seu Recibo, utilizo a repetição dessa ocorrência com a função CONT.SE para variar na função DESLOC o incremento de linha na planilha com dados.

Mas é preciso que o intervalo de CONT.SE sempre comece na célula D7 e termine na linha da célula atual.
Por exemplo, seu erro na célula C14 foi iniciar o intervalo em D12, então retornou erro, pois nesse intervalo não há ocorrência de "Data": =DESLOC(Folha1!$D$2;CONT.SE(D$12:D14;D$12)-1;0)

O correto em C14 é =DESLOC(Folha1!$H$2;CONT.SE(D$7:D14;D$7)-1;0) e aumentando o intervalo D$7:D14 à medida que avance para as outras linhas.

Todavia, como DESLOC é uma função volátil, às vezes há possibilidade de erros, então criei esta outra fórmula com funções não voláteis:
Código: Selecionar todos
C9=SEERRO(ÍNDICE(Folha1!$D$2:$D$1000;QUOCIENTE(LIN();25)+1);"")
Observe que uso a função QUOCIENTE para determinar a linha a ser buscada na aba com dados:
QUOCIENTE(LIN();25)+1. Em C9, no caso, QUOCIENTE(LIN();25) = QUOCIENTE(9;25)=0, por isso acrescento +1, para retornar o valor 1, ou seja, a primeira linha da aba com dados.

Quando você arrastar as fórmulas para o próximo recibo, C9 se tornará C34, logo, QUOCIENTE(LIN();25) = QUOCIENTE(34;25)=1, e +1, retornará o valor 2, ou seja, a segunda linha da aba com dados.
Assim sucessivamente.

Para os outros campos, ajuste a coluna na fórmula, por exemplo:
Código: Selecionar todos
C14=SEERRO(ÍNDICE(Folha1!$H$2:$H$1000;QUOCIENTE(LIN();25)+1);"")
Favor conferir no anexo.
Espero que funcione desta vez.

Ab.

Arrastando fórmulas com referências a outras sheets

Enviado: 08 Out 2019 às 15:58
por JDuro
Boas,

Muito obrigado. Agora sim, problema resolvido :D :D
A outra solução dava-me a mensagem #NOME? mesmo na célula C9, que supostamente estava bem.
Com esta está tudo ok e já apliquei no ficheiro original.

Mais uma vez, muito obrigado.
Grande abraço,
João