retornar o primeiro...
 
Notifications
Clear all

retornar o primeiro domingo depois de uma data

12 Posts
2 Usuários
0 Reactions
4,103 Visualizações
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

Eu estou fazendo uma tabela para cálculo do calendário litúrgico da Igreja Católica até 2100

A fórmula para cálculo da Páscoa eu peguei na wikipedia e deu muito bom. Calcular Corpus Christi, Pentecostes, dentre ouras a partir da data da Páscoa é moleza.

Ocorre que há necessidade de calcular o primeiro domingo depois do dia 25/12 de cada ano.

Eu gostaria de uma fórmula que fizesse isso.

Se DATA = 1, então
30/12/ANO
senão
primeiro domingo após a DATA

sendo que a data é a referência da célula que constará a data do natal daquele ano (A1, por exemplo) e ANO vai ser = ANO(DATA)

Obrigado.

 
Postado : 12/03/2015 11:17 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde,

Pelo que entendi você quer a data do primeiro domingo após 25/12, exceto se já for um domingo.
A fórmula abaixo faz isso, considerando que 25/12/AAAA esteja na célula A1:

=SE(DIA.DA.SEMANA(A1;2)=7;A1;A1+7-DIA.DA.SEMANA(A1;2))

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/03/2015 11:43 am
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

Obrigado! É quase isso, mas não é exatamente isso.

Quando o 25/12 cai num domingo ele mostra o mesmo 25/12 como domingo seguinte e não o dia 30/12

Obrigado. Estamos evoluindo.

 
Postado : 12/03/2015 12:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

A fórmula retorna o primeiro domingo após 25/12, caso este dia não seja um domingo.
Se o dia 25/12 for um domingo, retorna o próprio dia.
Portanto acho que atende ao solicitado.

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/03/2015 4:12 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que se o problema é quando o dia comparado é o domingo; então pode-se utilizar:

=SE(DIA.DA.SEMANA(A1;2)=7;A1+7;A1+7-DIA.DA.SEMANA(A1;2))

Obs.: Mesma proposta colega JValq, porem acrescentando uma semana se a data comparada for domingo

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/03/2015 7:50 am
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

depois de muito fuçar, o código que deu certo, eu acho, foi esse:

=SE(DIA.DA.SEMANA(A1;2)=7;A1+5;A1+7-DIA.DA.SEMANA(A1;2))

Alguém poderia me explicar, porque o código que eu escrevi ali deu certo? Nem eu entendi!

O que significa DIA.DA.SEMANA(A1;2)=7? Somou mais 5 sempre que o dia da semana de 25/12 for 1 e não 7. Por que eu tive que escrever 7?

sempre que o dia 25/12 for domingo, o dia 30 é 25+5, "ah vá?!", "pois é!"

Não entendi o A1;2

PS. Achei muito genial a manha do dia da semana + 7 - dia da semana para chegar ao domingo seguinte.

 
Postado : 19/03/2015 7:01 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Advogado

Se a dúvida foi resolvida clique no V (vezinho depois de Editar e do X) da resposta que mais atendeu.

Para agradecer, clique na mãozinha, que fica do lado da ferramenta Citar de todos que ajaudaram no tópico.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/03/2015 7:07 am
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

Tá, Patropi, mas eu não entendi porque deu certo. O que significa

=Se(dia.da.semana(A1;2)=7

E por que deu certo, sendo que o dia da semana em A1 era 1 e não 7?
1 = domingo
7 =sábado

Não é isso?

 
Postado : 19/03/2015 7:31 am
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

Valendo o vezinho para quem me explicar o que significa

(A1;2) = 7 e o motivo de executar o comando é que o dia em A1 ser 1 e não 7.

 
Postado : 19/03/2015 7:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A função dia.da.semana tem dois parâmetros.
O primeiro é a data em estudo.
O segundo é o retorno do tipo, ou seja, identifica/indica como considerar a semana.
Veja em https://support.office.com/pt-br/article/DIADASEMANA-Fun%C3%A7%C3%A3o-DIADASEMANA-60e44483-2ed1-439f-8bd0-e404c190949a?ui=pt-BR&rs=pt-BR&ad=BR

O tipo 2 determina que a semana inicia na Segunda (1) e termino no domingo (7), sendo esse, a meu ver, o mais funcional para utilizar em formulas do tipo proposta

Então: =Se(dia.da.semana(A1;2)=7 -> entende-se como Se a data analisada (A1), considerando a semana iniciada na segunda-feira (tipo=2), for um Domingo (7), adicione x dias

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/03/2015 7:43 am
(@advogado)
Posts: 31
Eminent Member
Topic starter
 

para finalizar e ganhar o joínha, mais vezinho:

Então para a semana começar no domingo, o parâmetro seria (A1;1)?

=SE(DIA.DA.SEMANA(A1;1)=1
 
Postado : 19/03/2015 7:49 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Por default a função dia.da.semana considera o domingo como o primeiro dia da semana.
Então para a semana começar no domingo, utilize o parâmetro 1 ou não especifique parâmetro algum -->Dia.da.semana(A1)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/03/2015 7:59 am