quinta-feira, 29 de maio de 2014

Timestamp (marca temporal) no Excel

O Excel possui uma função para preencher automáticamente uma célula com a data ou hora atual, que possui a seguinte sintaxe:
=AGORA()

Esta função é útil, por exemplo, se inserida no rodapé de um determinado documento para que a impressão apresente sempre a data e hora atuais.

Mas, por ser uma função volátil, este valor irá modificar-se cada vez que a planilha for calculada, por exemplo, ao fechar e abrir novamente o arquivo. Isto não será funcional nos casos em que se deseja que o registro da data/hora de um dado momento seja mantido. Para realizar este timestamp, há duas formas:

1) Utilizando teclas de atalho
Ctrl+; é inserida a data na célula corrente
Ctrl+: insere a hora atual na célula corrente

2) Utilizando combinação de funções com referência circular
Para esta forma de uso, é preciso habilitar a funcionalidade que permite referências circulares, que por padrão normalmente vem desabilitada:
MS-Excel (até a versão 2007) Menu Ferramentas > Opções… > Aba Cálculos > Iterações
MS-Excel (a partir da versão 2007) Botão Office > Opções Excel > Fórmulas > Iterações
LibreOffice (Openoffice.org ou BrOffice) Menu Ferramentas > Opções… > LibreOffice Calc > Calcular > Referências Iterativas

Após a ativação, a exibição de uma marca temporal pode ser reduzida à seguinte questão:
Se a célula não estiver preenchida, receberá a data e hora atuais. Se estiver, permanecerá como está.

Suponha uma planilha com duas colunas. Na primeira são inseridos textos, e na segunda a data/hora atual. À medida que valores são inseridos na coluna A, a marca temporal é registrada na coluna B. Nesse caso, a fórmula para a célula B2 seria algo como:
= SE( A2 <> ""; SE( B2 = ""; AGORA(); B2 ); "" )

Basicamente, são duas funções SE() aninhadas: a primeira verifica se um valor foi digitado na coluna A, a segunda faz uma referência circular ao atribuir o conteúdo da célula B2 à própria célula B2. Como o valor da função AGORA() só é avaliado quando a célula não possui um valor inicial, obtemos uma marca temporal, avaliada apenas uma vez, na atribuição inicial.

Este post é uma adaptação do conteúdo em http://www.jlcarneiro.com/como-obter-uma-marca-temporal-timestamp-no-excel/

Nenhum comentário:

Postar um comentário

Comentários ofensivos, discriminatórios, que denigram pessoas, empresas, instituições não serão publicados.