En excel. Tomar una fecha y definir si dicha fecha es una fecha en VERANO/INVIERNO/OTOÑO o PRIMAVERA

Tengo una columna con fechas, necesito generar 4 columnas más según las 4 estaciones. Y una fórmula o función que me ponga un 1 si la fecha en cuestión (que se encuentra en A2) corresponde a una fecha de la estación correspondiente. Ej.

Fecha                Verano            Otoño               Invierno             Primavera

23/12/2015            1                       0                           0                          0              

2 Respuestas

Respuesta
1

Tomando en cuenta las fechas de las estaciones así:

Verano 21-jun al 20-sep

Otoño 21-sep al 20-dic

Invierno 21-dic al 20-mar

Primavera 21-mar al 20-jun

Aplicamos las fórmulas en cada celda-->

Verano:

=+si(y((concatenar(mes(a2);0;dia(a2))*1)>=621;(concatenar(mes(a2);0;dia(a2))*1)<=920;dia(a2)<10);1;si(y((concatenar(mes(a2);dia(a2))*1)>=621;(concatenar(mes(a2);dia(a2))*1)<=920;dia(a2)>=10);1;0))

otoño:

=+si(y((concatenar(mes(a2);0;dia(a2))*1)>=921;(concatenar(mes(a2);0;dia(a2))*1)<=1220;dia(a2)<10);1;si(y((concatenar(mes(a2);dia(a2))*1)>=921;(concatenar(mes(a2);dia(a2))*1)<=1220;dia(a2)>=10);1;0))

invierno: (diferente porque se interrumpe el año y vuelve a empezar)

=+si(y((concatenar(mes(a2);0;dia(a2))*1)>=1221;(concatenar(mes(a2);0;dia(a2))*1)<=1231;dia(a2)<10);1;si(y((concatenar(mes(a2);dia(a2))*1)>=1221;(concatenar(mes(a2);dia(a2))*1)<=1231;dia(a2)>=10);1;si(y((concatenar(mes(a2);0;dia(a2))*1)>=0;(concatenar(mes(a2);0;dia(a2))*1)<=320;dia(a2)<10);1;si(y((concatenar(mes(a2);dia(a2))*1)>=0;(concatenar(mes(a2);dia(a2))*1)<=320;dia(a2)>=10);1;0))))

primavera:

=+si(y((concatenar(mes(a2);0;dia(a2))*1)>=321;(concatenar(mes(a2);0;dia(a2))*1)<=620;dia(a2)<10);1;si(y((concatenar(mes(a2);dia(a2))*1)>=321;(concatenar(mes(a2);dia(a2))*1)<=620;dia(a2)>=10);1;0))

Respuesta
3

H o l a:

Estaba contestando tu pregunta anterior, sobre la comparación del rango de fechas, pero cuando le puse enviar, me encontré con que la pregunta ya no existe.

Te anexo la respuesta, igual te ayuda a solucionar el problema de las estaciones del año:


La explicación, es porque no es lo mismo comparar texto que números,

Por ejemplo, si tu ordenas estos números

1, 10, 100, 20

El resultado es:

1

10

20

100

Pero si lo ordenas como texto el resultado es:

1

10

100

20

Cuanto ordenas como texto, el uno del 100 es menor al 2 del 20, es por eso que pone al 100 antes del 20.


Lo mismo sucede cuando comparas el texto de:

CONCATENAR(MES(A2);DIA(A2)))>="921"

Cuando utilizas la función Concatenar, estás convirtiendo los números a texto.


Otra cosa que debes considerar es el número de caracteres del mes y del día, por ejemplo:

Cuando concatenas 1 de octubre, el resultado es:

101 (ciento uno)

Y tu condición dice que debe ser mayor o igual a "921"

Entonces "101" es menor a "921", por eso no se cumple.


Para que efectivamente el 1 de octubre se vea así:

"1001" (mil uno)

Tienes que darle formato al número, utilizando la función Texto( )

Entonces "1001", sí es mayor a "921".


La fórmula con la primera opción, es formatear el número y pasar ese texto a número:

=SI(Y(VALOR((CONCATENAR(TEXTO(MES(A2);"00");TEXTO(DIA(A2);"00"))))>=921;VALOR((CONCATENAR(TEXTO(MES(A2);"00");TEXTO(DIA(A2);"00"))))<=1220);1;0)

Si revisas la fórmula, verás que estoy utilizando la función texto, para formatear el número, de tal suerte que cuando se 9 de octubre, tengas "1009", o 5 de mayo, tengas "0505".

Después estoy utilizando la función valor( ), para convertir el texto "1009" a un número 1009, o "0505" a 505.

Si también observas en la fórmula ya no estoy poniendo el número 921 entre comillas. Ya que estoy convirtiendo el resultado de la concatenación a valor.


También puedes utilizar la comparación entre textos, es decir, sin convertir el texto a número, ya que excel reconoce en automático cuando el texto es un número:

=SI(Y((CONCATENAR(TEXTO(MES(A2);"00");TEXTO(DIA(A2);"0")))>="0921";(CONCATENAR(TEXTO(MES(A2);"00");TEXTO(DIA(A2);"00")))<="1220");1;0)

Pero te recomiendo la primera opción, es más confiable comparar número contra números.


Si requieres ayuda para saber si es primavera, verano, otoño, invierno, me avisas.

Ahora viendo tu imagen, también puedes ocupar estas fórmulas.

En B2, verano:

=SI(Y(A2>=FECHA(AÑO(A2);6;21);A2<=FECHA(AÑO(A2);9;20));1;0)

En C2, Otoño:

=SI(Y($A2>=FECHA(AÑO($A2);9;21);$A2<=FECHA(AÑO($A2);12;20));1;0)

En D2, Invierno:

=SI(O(Y($A2>=FECHA(AÑO($A2);12;21);$A2<=FECHA(AÑO($A2);12;31));Y($A2>=FECHA(AÑO($A2);1;1);$A2<=FECHA(AÑO($A2);3;20)));1;0)

En E2, primavera:

=SI(Y($A2>=FECHA(AÑO($A2);3;21);$A2<=FECHA(AÑO($A2);6;20));1;0)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas