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)

2009-12-22

Há dias, num grupo de discussão, colocaram a seguinte questão (adaptada):

“ como posso fazer para criar uma tabela onde por cada entrada me indique a data e hora do momento, mas que de cada vez que  execute a folha, as datas das entradas anteriores não sejam todas  actualizadas?”

Vejamos o exemplo:

image

Podemos, então, construir o seguinte código, que colocaremos no Workbook, de modo a que, logo que o mesmo seja aberto, o execute, para criar uma entrada com data e hora de acesso:

Option Explicit

Private Sub Workbook_Open()
    Dim strDate As String

    strDate = Format(Date, "dd-mm-yyyy") & " / " & Format(Time, "hh:mm:ss")
    Range("A1").Select
    If Range("A2") = "" Then
        Range("A2") = strDate
    Else
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Value = strDate
    End If

End Sub

Nota: Este código deverá estar no workbook module (Este Livro ou This Workbook)

Tópicos relacionados:

2009-12-13

Num grupo de discussão do Excel, há já algum tempo, apresentaram a seguinte questão (adaptada):

“ Se eu digitar a seguinte fórmula numa célula = CONTAR.SE(E5:K5;”P”) e se existir algum “P” no range E5:K5, a célula é contada.

E se eu quiser contar nesse mesmo range as células que contenham “P”, “T” e “L”?

 

Vejamos o exemplo:

image

O resultado será 2.

Mas, se incorporarmos o “T” e o “L”, o resultado será 4.

Novamente o exemplo, com a fórmula adequada ao resultado pretendido. (mérito para o malogrado Frank Kabel - Permanent Link to Frank Kabel).

image

2009-12-05

Num grupo de discussão do Excel, foi apresentada a seguinte questão (adaptada):

“ Preciso saber como alterar o conteúdo  de um conjunto de células mas tenho a seguinte dificuldade:
Numa célula ou em várias tenho, por exemplo =soma(a5:a15), quero alterar o "5" para "6" passando a ter =soma(a6:a15) e o que obtenho é =soma(a6:a16), como posso apenas alterar o primeiro "5" sem mexer no segundo "5"?”

Para obstar tal situação, teremos que nos socorrer de algum expediente.

Assim, para obtermos o componente Range “A15”, sem que o mesmo possa ser alterado quando estamos a efectuar a substituição do algarismo “5”, podemos digitar o seguinte, por exemplo, na célula E200: ="A"&14+1, o que irá mostrar o conteúdo da célula como “A15”, apesar de não ter nenhum algarismo “5”:

image

Então, se pretendermos ter a soma(A5:A15) sem termos o segmento do range “A15”, mas sim, em sua substituição, o conteúdo de E200 (que será A15), digitaríamos, por exemplo em E5: =SOMA(A5:INDIRECTO(E200))

image

O resultado esperado seria 14.

Agora, se pretendermos utilizar o “Localizar e Substituir”:

image

Teríamos, então, o resultado esperado: 13

image

Ou seja, quando for para substituir "fórmulas" (em Opções>>), de 5 para 6, vai dar o resultado que se teria com a alteração da fórmula para =SOMA(A6:INDIRECTO(E200)), ou seja, o mesmo que  SOMA(A6:A15).

 

Tópicos relacionados:

2009-12-03

Há dias, num grupo de discussão, apareceu a seguinte questão (adaptada):

“venho solicitar a vossa ajuda para o seguinte:
copiei uma tabela da Net e na coluna que tem 1-1 ou 1-2 o Excel assume como um de Janeiro e um de Fevereiro respectivamente. Quando tento formatar a célula para texto, para que fique na forma original, ele coloca um numero 32 mil e qualquer coisa...
Alguém pode ajudar?”

Vejamos o exemplo dado:

image

image

Se tentarmos formatar as células como texto, irá aparecer o seguinte:

image

Então, para ultrapassarmos a situação e para que consigamos ter, por exemplo, nas células B1, B2 e B3, respectivamente os dados pretendidos a partir do conteúdo das células A1, A2 e A3, ou seja, 1-1, 1-2 e 1-3, para que fique assim:

image

Devemos construir a seguinte fórmula em B1, copiando-a até B3:

=TEXTO(A1;"d-m")

2009-11-12

Sam Howley (http://www.querycell.com/), enviou-me um e-mail, referindo um artigo que escreveu para ajudar os utilizadores do Add-In que ele criou: Excel Add-In QueryCell, o qual podem ler em Introduction to SQL tutorial for Excel users. QueryCell permite a utilização de SQL no Excel.

Aproveitem a leitura, porque é interessante.

2009-11-09

image

2009-11-04

Há dias um assíduo leitor do EXCELer, enviou-me um link relacionado com o título do presente post.

Pelo seu interesse, aqui o deixo, para vosso conhecimento:

Aprenda a usar mapas e coordenadas no Excel

2009-10-01

image

2009-09-20

Numa das minhas deambulações pelos excelentes bloggers do Excel, fui parar ao blog do MVP Glenn Lloyd - “General Office topics”: http://argeeoffice.spaces.live.com/.

Aí vi a alusão a um link para Peter Noneley's site, que contém uma ferramenta de trabalho para o Excel, denominada “Dicionário de Funções do Excel”. Como o download é grátis, aqui deixo a referência a este link, uma vez que, tenho a certeza, vão gostar do que vão ver.