Consulta / fórmula de data exclusiva do Excel

1

É possível preencher previamente uma data em uma coluna após a entrada da data na coluna adjacente?

Aqui está o que eu fui encarregado de:

Se a data for anterior ou anterior (<=) ao 6º do mês (por exemplo, 01/01/2019), a data pré-preenchida deverá ser 21 do mês seguinte (+1 mês) (por exemplo, 21/02/2019)

Se a data for após (>) o dia 6 do mês (por exemplo, 01/01/2019), a data pré-preenchida deverá ser de 21 anos e dois meses (por exemplo, 21/03/2019)

O pré-preenchido sempre será iniciado no 21º dia do mês.

Qualquer ajuda com isso é muito apreciada

Muito Obrigado

RT

RockTaylor
fonte

Respostas:

4

Isso é bem simples, usando as funções de data.

insira a descrição da imagem aqui

Observe que estou nos EUA, então minhas datas são MM / DD / AAAA. Adicionei uma data de dezembro para que você possa ver como o Excel lida com inteligência com o ano se o mês ultrapassar 12. A fórmula em B1:

=DATE(YEAR(A1),MONTH(A1)+IF(DAY(A1)>6,2,1),21)

DATA () permite especificar uma data digitando o ano, mês e dia. O dia alvo é sempre o 21º dia do mês. O ano é considerado o ano da data de origem. Toda a ação acontece com a especificação do mês. Começamos com o mês da data de origem e, em seguida, adicionamos 1 ou 2 meses, com base no fato de o dia de origem ser maior que 6. A lógica é muito legível por humanos e segue o que você descreveu na pergunta.

fixer1234
fonte
Mais elegante que o meu.
Mark Fitzgerald
@ MarkFitzgerald, grandes mentes pensam da mesma forma. :-) Nossas fórmulas são quase as mesmas e parece que nós dois estávamos escrevendo respostas ao mesmo tempo.
Fixer1234 23/01
1

Se sua data estava na célula A1, essa fórmula em qualquer outra célula da linha 1 funcionará:

=IF(DAY(A1)>6,DATE(YEAR(A1),MONTH(A1)+2,21),DATE(YEAR(A1),MONTH(A1)+1,21))

Copie conforme necessário.

Mark Fitzgerald
fonte
1

Prefiro a função SE como mais clara para ler e entender o que está acontecendo, mas como alternativa você pode usar o seguinte:

=DATE(YEAR(A1),MONTH(A1)+1+(DAY(A1)>6),21)

O (DAY(A1)>6)retorno retornará VERDADEIRO ou FALSO. Quando isso é enviado através de uma operação matemática, nesse caso, além disso, ele será convertido em 1 para TRUE e 0 em FALSE.

Forward Ed
fonte