domingo, 24 de novembro de 2013

INSERIR CARIMBO DE TEMPO (Insert a Timestamp)

Em virtude de ter recebido várias solicitações relacionadas com carimbos temporais, achei pertinente a publicação de um artigo sobre o assunto.
Because having received several requests related to timestamps, I found relevant to submit a post with this the subject.
Todos os dias temos necessidade de registar a data e/ou a hora actuais de um evento (agendamentos, registo de despesas, etc.). A estes registos chamam-se carimbos de tempo.
Every day we need to record the date and/or time of a current event (scheduling, expense registration, etc.). To these records we call timestamps.
Todavia, se tivermos de repetir o processo múltiplas vezes, torna-se aborrecido ter de reescrever constantemente a data e a hora.
However, if we repeat the process multiple times, it becomes boring and time consuming having to constantly rewrite the date and time.
Um modo de substituir a introdução manual data e/ou a hora actuais é utilizar as fórmulas HOJE() e AGORA().
A method of replacing the manual input of the current date and/or time is to use existing formulas TODAY() and NOW().
A primeira insere automaticamente a data actual. A segunda, além da data, insere também a hora.
The first automatically inserts the current date. The second enters the current date and time.
Exemplo:
Em A1, inserimos =HOJE(), obteremos a data actual (Ex. 24/11/2013 - podemos formatar a data como quisermos).
Em A2, inserimos =AGORA(), obteremos a data e hora actual (Ex. 24/11/2103 1:55 PM)
Example:
In A1, insert =TODAY(), we get the current date (eg. 11/24/2013 - format date as we wish).
In A2, insert =NOW(), we get the current date and time (eg. 11/24/2103 1:55 PM)
O problema da utilização destas fórmulas é que elas estão constantemente a actualizar o resultado. Ou seja, se no dia seguinte, às 10:00, abrirmos o ficheiro, A1 apresentará a data de 25/11/2013 e A2 terá o valor 25/11/2013 10:00 AM. Não servem por isso para criar registos de tempo que permitam uma análise posterior dos dados.
The problem of the use of these formulas is that they are constantly updating the result. That is, if the next day, at 10:00, we open the file, A1 will display the date of 11/25/2013 and A2 will have the value 11/25/2013 10:00 AM. Therefore they do not serve to create timestamps to allow further analysis of the data.
Para obtermos realmente um carimbo de tempo, temos de utilizar os seguintes atalhos de teclado:
1.    CTRL+SHIFT+; - Insere automaticamente a data actual
2.    CTRL+SHIFT+: - Insere automaticamente a hora actual
3.    CTRL+SHIFT+; ESPAÇO CTRL+SHIFT+: - Insere automaticamente a data e a hora actuais
To obtain a timestamp, we use the following keyboard shortcuts:
1.    CTRL+SHIFT+; - Automatically inserts the current date
2.    CTRL+SHIFT+: - Automatically inserts the current time
3.    CTRL+SHIFT+; SPACE CTRL+SHIFT+: - Automatically inserts the current date and time
Uma forma ainda mais rápida de escrever a data e a hora é substituir o atalho 3 por um atalho de teclado personalizado (ex: CTRL+t) associando-lhe a seguinte macro:
An even faster way to write the date and time is to replace the shortcut 3 for a custom keyboard shortcut (eg CTRL+t) and link the following macro:
Sub CarimboTempo()
Dim CT
'Atalho de Teclado (Keyboard Shortcut): Ctrl+t
CT = Format(Now, "dd/mm/yyyy hh:mm:ss AM/PM") ‘formatar como desejar (format as you wish)
ActiveCell.Select
Selection.NumberFormat = "dd/mm/yyyy hh:mm AM/PM" ‘formatar como desejar (format as you wish)
ActiveCell.Value = CT
End Sub
Onde escrever a macro
1.    Copiar o código acima
2.   Escolher no Friso Programador (*) -> Visual Basic ->



3.   Duplo click na Folha em que pretendemos correr a macro



4.   Colar o código
Como associar a macro a um atalho
5.   Escolher no Friso Programador (ou Ver) -> Macros -> Opções -> inserir CTRL+t
Where to place the macro
1.    Copy the code above
2.    In the Ribbon, choose Developer (*) > Visual Basic
3.    Double click on the sheet in which we intend to run the macro
4.    Paste the code
How to link the macro to a shortcut
5.    In the Ribbon, choose Developer (or View) > Macros > Options > Write CTRL+t



domingo, 28 de julho de 2013

OUTRO EXEMPLO DE CÁLCULO DE HORAS NEGATIVAS (Another Example for Calculating Negative Hours)

Outra questão que me foi colocada recentemente relacionava-se com o cálculo de atrasos numa escala de produção. Neste caso específico, o atraso implicava que o resultado fosse negativo. E o Excel não reconhece directamente valores negativos quando se trata cálculo com unidades de tempo.
Another question I was asked recently was related to the calculation of delays on a production scale. In this particular case, the delay meant that the result was negative. And Excel does not directly recognize negative values ​​when it comes to calculation units of time.

A solução apresentada foi a seguinte:
My solution was as follows:


Fórmula da Célula E6 e seguintes:
= SE(D6>C6;RESTO(D6-C6;1);RESTO(C6-D6;1))
Formula in E6 and below:
= IF(D6>C6,MOD(D6-C6,1);MOD(C6-D6,1))
As células a vermelho realçam os casos em que o resultado é negativo e, por isso, existe um atraso  na escala.
Para que essas células apareçam com fundo vermelho, recorre-se à formatação condicional:
The red cells to enhance the cases in which the result is negative and, therefore, there is a delay in scale.

For these cells appear with red background, makes use of the conditional formatting:
Formatação Condicional / Conditional Format

sábado, 27 de julho de 2013

CALCULAR HORAS ENTRE DUAS DATAS COM UMA CONDIÇÃO (Calculate Hours Between Two Dates with a Condition)

O cálculo com unidades de tempo (horas, dias, etc.) tem sido um dos temas mais recorrentes aqui no blog.

Há alguns dias atrás, puseram-me uma questão interessante. Tratava-se de calcular o número de horas entre duas datas, subtraindo um determinado conjunto de horas (16) a cada dia do intervalo, caso esse intervalo fosse superior a 24 horas.

Apresentei duas soluções para chegar ao mesmo resultado:

Na primeira, utilizei a função SE para criar um conjunto de condições (Tabela 1).
Na segunda, utilizei as funções DATADIF (que já foi objecto de um post - http://exceleoutrascoisas.blogspot.pt/search/label/DATADIF) e TEMPO.


Fórmulas da Tabela 1:
D4 =SE((C4-B4)*24<16;(C4-B4)*24;SE(E((C4-B4)*24>=16;(C4-B4)*24<=24);(C4-B4)*24-16;SE((C4-B4)*24>24;(C4-B4)*24-(ARRED((C4-B4)*24/24;0)*16)))))
- A formatação da célula é 0,00
E4 =(SE((C4-B4)*24<16;(C4-B4)*24;SE(E((C4-B4)*24>=16;(C4-B4)*24<=24);(C4-B4)*24-16;SE((C4-B4)*24>24;(C4-B4)*24-(ARRED((C4-B4)*24/24;0)*16)))))/24 
- A formatação da célula é [hh]:mm

Fórmula da Tabela 2:
D12 =C12-B12-DATADIF(B12;C12;"d")*TEMPO(16;0;0)
- A formatação da célula é [hh]:mm

Time units calculation (hours, days, etc.) has been one of the most frequently issues here in the blog.

A few days ago, someone put me an interesting question. It was abour calculating the number of hours between two dates by subtracting a set of hours (16) in each day in the range if that range was longer than 24 hours.

I have presented two solutions to reach the same result:

In the first one, I used the IF function to create a set of conditions (Table 1).
In the second, I used DATEDIF function (which has been the subject of a post - http://exceleoutrascoisas.blogspot.pt/search/label/DATADIF) and TIME function.



Formulas in Table 1:
D4 =IF((C4-B4)*24<16,(C4-B4)*24,IF(AND((C4-B4)*24>=16,(C4-B4)*24<=24),(C4-B4)*24-16,IF((C4-B4)*24>24,(C4-B4)*24-(ROUND((C4-B4)*24/24,0)*16)))))
- Cell format is 0.00
E4 =(IF((C4-B4)*24<16,(C4-B4)*24,IF(AND((C4-B4)*24>=16,(C4-B4)*24<=24),(C4-B4)*24-16,IF((C4-B4)*24>24,(C4-B4)*24-(ROUND((C4-B4)*24/24,0)*16)))))/24 
- Cell format is [hh]: mm

Formula in Table 2:
D12 = C12-B12-DATEDIF (B12, C12, "d") * TIME (16, 0, 0)
- Cell format is [hh]: mm

sábado, 15 de junho de 2013

CALCULAR HORAS EXTRA, TURNO NOCTURNO, HORAS NEGATIVAS, ETC (Overtime Calculation, Night Shift, Negative Hours, Etc.)

Devido às inúmeras solicitações de ajuda, quer aqui no blog quer no meu dia-a-dia, em questões com cálculo de horas, criei um pequeno modelo de folha de ponto, focada no cálculo de horas extra e de turnos específicos.
É um modelo editável e facilmente adaptável à maioria das situações relacionadas profissionais.
Como sempre, estou disponível para sugestões de melhoria e para ajudar nas questões que eventualmente estejam omissas.
Espero que seja útil.
Due to numerous requests for help, either here on the blog or in my day-to-day issues in the calculation of hours, I have created a small timesheet template, focused on the calculation of overtime and specific shifts .It is an editable template and easily adaptable to most business situations.As always, I am available to suggestions for improvement and to help answer questions that may be missing.I hope you find it useful.



Baixar Modelo
Download Template
Informar se não conseguir baixar
Please report if download link not work