Como posso obter o trimestre do ano a partir de uma data?

8

No Excel, como posso obter o trimestre do ano a partir de uma data, usando uma fórmula de planilha? Eu tenho uma coluna com datas que abrangem vários anos.

  • 01/01 a 31/03 = Q1
  • 01 de abril a 30 de junho = Q2
  • etc ...

Pergunta de bônus: Como posso mudar o trimestre para que o primeiro trimestre seja de abril a junho (janeiro-março seria o quarto trimestre).

mtone
fonte

Respostas:

7

Dependendo de como você formatou o valor da Data, o Excel pode automaticamente encobri-lo no "código da data". esse é o número de dias desde 1º de janeiro de 1900 (código de data 1). Esse número é usado pelas diferentes funções de data. Aqui está uma fórmula sugerida para análise trimestral simples.

= ROUNDUP (MÊS (A1) / 3,0)

Isso fornecerá apenas o número do trimestre. você pode usar CONCATENATE para adicionar texto.

Aqui está um ótimo tutorial com muitos exemplos:

http://www.cpearson.com/excel/DateTimeWS.htm

[EDITAR]

Conforme declarado por @hyperslug, a melhor maneira de fazer isso é usar o seguinte:

= CONCATENAR ("Q", ARREDONDAR (MÊS (DATA (ANO (A1), MÊS (A1) -3, DIA (A1))) / 3,0))

Esse método muda a data para frente ou para trás antes de obter o valor do mês antes de dividir por 3. Você pode controlar o mês em que o trimestre começa alterando a seção "Mês (A1) -3".

  • Data de início do uso em janeiro: "Mês (A1)"
  • Data de início do uso de abril: "Mês (A1) -3"
  • Data de início do uso de setembro: "Mês (A1) +4"

Adição e subtração podem ser usadas. Não é intuitivo, mas o uso da subtração avança o trimestre inicial (-1 é fevereiro) e a adição o retrocede (+1 é dezembro).

[/EDITAR]


[EDIT] Nota: Este método funciona, mas não é tão elegante quanto o método acima.

Depois de algumas brincadeiras, encontrei uma maneira de responder à sua pergunta sobre bônus. Você pode usar instruções IF para retornar um valor (text / int) com base no mês. Você só precisa descobrir quais meses estão associados a que trimestre.

= SE (AND (MÊS (A1)> = 4, MÊS (A1) <7), "Q1", SE (AND (MÊS (A1)> = 7, MÊS (A1) <10), "Q2", SE (AND (MÊS (A1)> = 10), "Q3", SE (AND (MÊS (A1)> = 1, MÊS (A1) <4), "Q4"))))

É uma equação densa que usa uma combinação das funções "SE", "AND" e "MÊS". Modificando os valores do mês (dentro das instruções AND), você pode controlar ainda mais qual valor é retornado. Usei cadeias de texto, mas você pode modificá-las facilmente para atender às suas necessidades.

[/EDITAR]

Espero que isto ajude

Doltknuckle
fonte
Muito obrigado - usando-o imediatamente!
Mck
1
Ou=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
hyperslug
Whoa @hyperslug, essa é uma maneira muito melhor de fazê-lo. Tudo o que você precisa fazer para alterar o mês inicial do 1º trimestre é adicionar ou subtrair do primeiro cálculo de dados "Mês (A1) -3". Estou muito acostumado a trabalhar com instruções IF / TEN.
Doltknuckle
2

Resposta bônus:

=MOD(INT((MONTH(A1)-1)/3)-1,4)+1
Toc
fonte
1

Isso deve ser mais eficiente:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)
David
fonte
2
Mais eficiente do que o que? Por que você faz essa afirmação?
precisa saber é o seguinte
Há menos cálculos (conversão de data, etc.), o número de parâmetros é mantido no nível mínimo e é mais curto. Embora eu deva usar INT em vez de FLOOR. Vou testar primeiro.
David
funciona, eu atualizei a resposta.
David
0

A seguinte fórmula deve funcionar:

=IF(OR(MONTH(A1)=1,MONTH(A1)=2,MONTH(A1)=3),"Q1",IF(OR(MONTH(A1)=4,MONTH(A1)=5,MONTH(A1)=6),"Q2",IF(OR(MONTH(A1)=7,MONTH(A1)=8,MONTH(A1)=9),"Q3",IF(OR(MONTH(A1)=10,MONTH(A1)=11,MONTH(A1)=12),"Q4",""))))

Boa sorte.

Titty George
fonte