Como calcular a próxima segunda-feira após uma determinada data?

11

Eu estou procurando uma fórmula que pode olhar para um valor de célula que contém uma data e retornar a primeira segunda-feira a ocorrer após essa data.

Exemplos (formato MM / dd / aaaa):

10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday)  would return 10/28/2013 (Monday)
Brian
fonte

Respostas:

15

Deixe B2a célula que contém a data.

=IF(WEEKDAY(B2)=2, B2, IF(WEEKDAY(B2)=1,B2+1, B2+9-WEEKDAY(B2)))

ou

=IF(WEEKDAY(B2,3)=0, B2, B2+7-WEEKDAY(B2,3))
Franck Dernoncourt
fonte
3

Uma solução um pouco mais elegante é mudar cada entrada pelo número adequado de dias.

=B2+MOD(9-WEEKDAY(B2),7)

Se você quer ser esperto, o WEEKDAY não é necessário, pois sabemos que a época caiu em um sábado (calcule WEEKDAY (0) para verificar isso)

=B2+MOD(9-B2,7)
Tom McFarlin
fonte
1

Uma solução genérica e elegante que funciona para qualquer dia da semana (dia N):

Célula B2: data para mudar para o próximo dia N da semana; Célula B3: próximo dia N da semana: seg = 1, ter = 2, ...;

=B2+MOD(B3-WEEKDAY(B2,2),7)

Para um dia específico da semana, neste caso segunda-feira (dia = 1), a fórmula pode ser 'codificada' para

=B2+MOD(1-WEEKDAY(B2,2),7)

Observe que, ao definir o segundo parâmetro do dia da semana como '2', weekday(B2,2)isso retorna o dia da semana consistente com o dia N desejado, usado na fórmula acima (célula B1), ou seja, Mon = 1, Ter = 2, ...

Baz
fonte
0

A solução de Franck é perfeita para segunda-feira, mas não funcionará por outros dias (testei apenas a segunda fórmula). No entanto, a fórmula a seguir funcionará por outros dias. Seja B2 a data e B3 o dia (B3 é de 1 a 7, onde domingo é 1):

=IF(WEEKDAY(B2,1)<B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))

Nota: Encontrará o dia seguinte, mesmo que B2 seja o dia solicitado. Mas a próxima fórmula retornará hoje se B2 for o dia solicitado:

=IF(WEEKDAY(B2,1)<=B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))
Ashi
fonte