¿Cómo puedo obtener el trimestre anual a partir de una fecha?

8

En Excel, ¿cómo puedo obtener el trimestre del año a partir de una fecha, usando una fórmula de hoja de trabajo? Tengo una columna con fechas que abarcan varios años.

  • 01 de enero al 31 de marzo = Q1
  • 01 de abril a 30 de junio = Q2
  • etc ...

Pregunta adicional: ¿Cómo puedo cambiar el trimestre para que el primer trimestre sea de abril a junio (enero-marzo sería el cuarto trimestre)?

mtone
fuente

Respuestas:

7

Dependiendo de cómo haya formateado su valor de fecha, Excel puede convertirlo automáticamente en el "código de fecha". Este es el número de días desde el 1 de enero de 1900 (código de fecha de 1). Este número es utilizado por las diferentes funciones de fecha. Aquí hay una fórmula sugerida para un análisis trimestral simple.

= REDONDEO (MES (A1) / 3,0)

Esto solo le dará el número del trimestre. luego puede usar CONCATENAR para agregar texto.

Aquí hay un gran tutorial con muchos ejemplos:

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

[EDITAR]

Como lo indicó @hyperslug, una mejor manera de hacerlo es usar lo siguiente:

= CONCATENAR ("Q", REDONDEO (MES (FECHA (AÑO (A1), MES (A1) -3, DÍA (A1))) / 3,0))

Este método desplaza la fecha hacia adelante o hacia atrás antes de obtener el valor de un mes antes de dividirlo entre 3. Puede controlar el mes en que comienza el trimestre cambiando la sección "Mes (A1) -3".

  • Fecha de inicio del uso de enero: "Mes (A1)"
  • Fecha de inicio del uso en abril: "Mes (A1) -3"
  • Fecha de inicio del uso de septiembre: "Mes (A1) +4"

La suma y la resta se pueden usar. No es intuitivo, pero el uso de la resta hace avanzar el trimestre inicial (-1 es febrero), y la suma lo mueve hacia atrás (+1 es diciembre).

[/EDITAR]


[EDITAR] Nota: este método funciona, pero no es tan elegante como el método anterior.

Después de jugar un poco, encontré una manera de responder a tu pregunta adicional. Puede usar declaraciones IF para devolver un valor (text / int) basado en el mes. Solo tiene que averiguar qué meses están asociados con qué trimestre.

= SI (Y (MES (A1)> = 4, MES (A1) <7), "Q1", SI (Y (MES (A1)> = 7, MES (A1) <10), "Q2", SI (Y (MES (A1)> = 10), "Q3", SI (Y (MES (A1)> = 1, MES (A1) <4), "Q4"))))

Es una ecuación densa que utiliza una combinación de funciones "SI", "Y" y "MES". Al modificar los valores del mes (dentro de las declaraciones AND), puede controlar aún más qué valor se devuelve. Utilicé cadenas de texto, pero puedes modificarlas fácilmente para que se ajusten a tus necesidades.

[/EDITAR]

Espero que esto ayude

Doltknuckle
fuente
¡Muchas gracias, utilizándolo de inmediato!
mtone
1
O bien=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
hiperslug el
Whoa @hyperslug, esa es una forma mucho mejor de hacerlo. Todo lo que tiene que hacer para cambiar el mes de inicio del primer trimestre es sumar o restar del primer cálculo de datos "Mes (A1) -3". Estoy demasiado acostumbrado a trabajar con declaraciones IF / TEN.
Doltknuckle
2

Respuesta extra:

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

Esto debería ser más eficiente:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)
David
fuente
2
¿Más eficiente que qué? ¿Por qué haces ese reclamo?
Ƭᴇcʜιᴇ007
Hay menos cálculos (conversión de fecha, etc.), el número de parámetros se mantiene en el nivel mínimo y es más corto. Aunque, debería usar INT en lugar de FLOOR. Lo probaré primero.
David
funciona, he actualizado la respuesta.
David
0

La siguiente fórmula debería 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",""))))

Buena suerte.

Titty George
fuente