About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2005-10-27
Suponhamos que temos duas datas: 01-01-2005 e 23-01-2005. Se pretendermos saber quantas semanas estão contidas entre estas duas datas e quantos dias remanescem, verificamos que são 3 semanas (7x 3 = 21), restando 1 dia.
Numa abordagem um pouco simplista, mas demasiado elaborada (só para melhor compreensão), podemos criar várias fórmulas tendo em consideração o que atrás foi escrito. Então, teríamos:

em B2: =DATEDIF(A1;A2;"d")/7, ou seja, 3 semanas [ à Função DATEDIF() corresponde em português a Função DATADIF() ]
em B3: =DATEDIF(A1;A2;"d"), ou seja, a totalidade de dias - 22 dias
E o resultado seria:

em B6: =INT(B2)&","&INT(B3)-INT(B2)*7, ou seja: 3,1 (3 semanas e 1 dia)
Mas, se quisermos ser menos elaborados, mas com uma fórmula mais correcta, então podemos utilizar as Funções INT() [ em português é a mesma) e MOD() (RESTO() em português ]:

em B6: =INT((A2-A1)/7)&","&MOD(A2-A1;7)
Para finalizar, se quisermos ter uma apresentação mais cuidada, podemos escrever a fórmula do seguinte modo:

em B6: =IF(MOD(A2-A1;7)=0;INT((A2-A1)/7)&" semana(s)";INT((A2-A1)/7)& _
" semana(s) e "&MOD(A2-A1;7)&" dia(s)")
Numa abordagem um pouco simplista, mas demasiado elaborada (só para melhor compreensão), podemos criar várias fórmulas tendo em consideração o que atrás foi escrito. Então, teríamos:
em B2: =DATEDIF(A1;A2;"d")/7, ou seja, 3 semanas [ à Função DATEDIF() corresponde em português a Função DATADIF() ]
em B3: =DATEDIF(A1;A2;"d"), ou seja, a totalidade de dias - 22 dias
E o resultado seria:
em B6: =INT(B2)&","&INT(B3)-INT(B2)*7, ou seja: 3,1 (3 semanas e 1 dia)
Mas, se quisermos ser menos elaborados, mas com uma fórmula mais correcta, então podemos utilizar as Funções INT() [ em português é a mesma) e MOD() (RESTO() em português ]:
em B6: =INT((A2-A1)/7)&","&MOD(A2-A1;7)
Para finalizar, se quisermos ter uma apresentação mais cuidada, podemos escrever a fórmula do seguinte modo:
em B6: =IF(MOD(A2-A1;7)=0;INT((A2-A1)/7)&" semana(s)";INT((A2-A1)/7)& _
" semana(s) e "&MOD(A2-A1;7)&" dia(s)")
2005-10-21
No post anterior foi apresentado um modelo básico de calendário. Hoje, utilizando esse mesmo calendário, mostro como se pode incluir o número da semana correspondente, embora não seja totalmente correcto, porque não se está a tomar como início da semana o domingo, mas sim e sempre, os dias 1,8,15,22 e 29 do mês em referência:
A Fórmula em L10 (com Copy & Paste até L14):
=DAYS360($M$4;(M10&"-"&$O$6&"-"&$O$7))/7+1-5400
Nota: A célula M4 é uma célula vazia, apenas representando a data de início para a Função Days360(), ou seja, o valor 0 (zero):
2005-10-17
Um calendário básico:

Em O6 - o mês
Em O7 - o ano
Em M9:
=WEEKDAY($O$6&"-"&$O$7)
Em N9:
=M9+1
Em O9:
=N9+1
O mesmo até S9.
Para mostrar o dia corrente noutra cor, como no exemplo, marca-se a tabela com os 31 algarismos correspondentes aos dias do mês:

Escolhe-se Formatar Condicionalmente:

e, no terceiro campo da condição, coloca-se a fórmula:
=DAY(TODAY())
Agora, para que os dias do mês coincidam com o mês em causa, ou seja, meses com 30 dias, meses com 31 dias e Fevereiro com 29 ou 28 dias, conforme seja ano bissexto ou comum, teremos que construir a seguinte fórmula, no exemplo, em S6:
=DAY(DATE(O7;MONTH(DATEVALUE(O6&"-"&O7))+1;0))
Por último, na célula onde deve ficar o algarismo 29, ou seja, no exemplo, em M14, colocamos a seguinte fórmula:
=IF(S6=28;"";29)
Na célula correspondente a 30:
=IF(S6<30;"";30)
E na célula correspondente a 31:
=IF(S6=31;31;"")
Em O6 - o mês
Em O7 - o ano
Em M9:
=WEEKDAY($O$6&"-"&$O$7)
Em N9:
=M9+1
Em O9:
=N9+1
O mesmo até S9.
Para mostrar o dia corrente noutra cor, como no exemplo, marca-se a tabela com os 31 algarismos correspondentes aos dias do mês:
Escolhe-se Formatar Condicionalmente:
e, no terceiro campo da condição, coloca-se a fórmula:
=DAY(TODAY())
Agora, para que os dias do mês coincidam com o mês em causa, ou seja, meses com 30 dias, meses com 31 dias e Fevereiro com 29 ou 28 dias, conforme seja ano bissexto ou comum, teremos que construir a seguinte fórmula, no exemplo, em S6:
=DAY(DATE(O7;MONTH(DATEVALUE(O6&"-"&O7))+1;0))
Por último, na célula onde deve ficar o algarismo 29, ou seja, no exemplo, em M14, colocamos a seguinte fórmula:
=IF(S6=28;"";29)
Na célula correspondente a 30:
=IF(S6<30;"";30)
E na célula correspondente a 31:
=IF(S6=31;31;"")
2005-10-10
É com grande orgulho que torno público que a Microsoft me reconheceu como Microsoft Most Valuable Professional [MVP] - Excel
2005-10-08
Para incrementar linearmente, iniciando num valor definido numa célula e indicando noutra o intervalo do incremento, ou seja, iniciando o incremento, por exemplo no valor 0 (em A1) e incrementando de 5 em 5 (valor dado em B1):

Podemos utilizar a seguinte fórmula em A2 (vista num newsgroups de Excel e apresentada por BenjieLop):
=IF(OR($A$1="";$B$1="");"";A1+$B$1)
Nota: a fórmula deve ser copiada para tantas células quantas as que se pretendam constituir como parte do incremento.
Podemos utilizar a seguinte fórmula em A2 (vista num newsgroups de Excel e apresentada por BenjieLop):
=IF(OR($A$1="";$B$1="");"";A1+$B$1)
Nota: a fórmula deve ser copiada para tantas células quantas as que se pretendam constituir como parte do incremento.
2005-10-03
Se pretendermos utilizar outro tipo de fórmula para obtermos o número de anos, em vez de =DATEDIF(A1;A2;"Y"), podemos usar as Funções VALUE() e DAYS360():

NOTA: A célula que irá conter a fórmula indicada em baixo, deverá ser formatada como número inteiro.
A fórmula:
=VALUE(DAYS360(A1;A2)/360)-1
NOTA: A célula que irá conter a fórmula indicada em baixo, deverá ser formatada como número inteiro.
A fórmula:
=VALUE(DAYS360(A1;A2)/360)-1
Subscrever:
Mensagens (Atom)