About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2010-01-24

Num grupo de discussão, foi colocada a seguinte questão (adaptada):

Tenho uma questão no Excel:
Numa coluna tenho várias leituras, uma por cada dia:

      Dia Leitura Consumo Dia
      1      150
      2      160              10
      3      165               5


O "problema" é que depois posso ter dia(s) sem leituras e isso baralha as contas do consumo:

      Dia Leitura Consumo Dia
      1      150
      2      160             10
      3      165              5
      4     -165
      5      180           180


Existe alguma maneira "simples" de dar a volta à questão? É que posso ter um dia ou vários sem serem preenchidos (a solução básica é dizer ao utilizador quando não há leitura para copiar a anterior mas estava a ver se conseguia dar a volta à questão). Alguma ideia?

Bom, o que se pretende é:

image

Para se conseguir este efeito, reflectido na coluna C (Consumo/Dia), a partir dos dados inseridos na coluna B (Leitura), procurou-se criar uma tabela na coluna E (a partir de E2), como segue:

image

Esta tabela, na coluna E, serve para ir dando os valores acumulados diariamente, iniciando em E2, como sendo a leitura do final do mês anterior. A coluna B, será a coluna onde serão inseridos os valores correspondentes às leituras diárias. Assim, se, por exemplo, no dia 3 a leitura for zero (0) ou sem valor (como no dia 8), sendo o consumo do dia igualmente zero (0), a tabela terá que reflectir que o valor acumulado se mantém o mesmo do(s) dia(s) anterior(es) (no exemplo, 162). Então, no dia 4, ao fazer-se uma leitura, que será sempre superior ao valor acumulado, irá dar um valor de consumo igual à diferença entre o último dia com consumo e o presente (no exemplo, 8), passando, assim, na tabela de referência, de 162, para 170 (162 + 8 = 170).

 

Agora, vamos às fórmulas necessárias para se conseguir o resultado pretendido:

Na coluna C, começando em C3 e depois copiando a fórmula até ao dia pretendido (normalmente 30 ou 31 – no exemplo, apenas até C12 – dia 10):

=SE(OU(E2=FALSO;B3=0);0;B3-E2)

Na coluna E, começando em E3 e depois copiando a fórmula até ao dia pretendido (normalmente 30 ou 31 – no exemplo, apenas até E12 – dia 10):

=SE(B3=0;-(B3-E2);B3)