"Cuando las expectativas de uno son reducidas a cero, uno realmente aprecia todo lo que si tiene."
- Stephen Hawking
El artículo anterior se complica, dado que aparecen condiciones para la generación de las fechas que formaran parte de la frase que se desea armar.
Recuerdo que en el artículo anterior se necesitaba armar una formula en EXCEL que permita armar la frase ?Semana del día 1 de Junio al día 7 de Junio?, donde las fechas del periodo deben ir desde el día Lunes al Domingo, la cual se obtenía con la siguiente formula:
=CONCATENAR( "Semana del día "; DIA(HOY()); " de "; NOMPROPIO(TEXTO(HOY();"mmmm")); " al día "; DIA(HOY()+6); " de "; NOMPROPIO(TEXTO(HOY()+6;"mmmm")) )
Pero ahora, se posee las siguientes condiciones:
Es larga, pero intentare desmenuzar y explicar lo más que pueda:
=DIASEM(HOY();2) devuelve el numero del día de la semana de la fecha actual.
Necesito obtener el número de día que será el Domingo próximo: =DIA(HOY()+(7-DIASEM(HOY();2)))
Obtengo el último día del mes:
=DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))
Verifico si estoy próximo a fin de mes: si la fecha del siguiente domingo es superior a 25 obtengo el ultimo día del mes, sino, obtengo el numero de día que será el Domingo próximo:
=SI(DIA(HOY()+(7-DIASEM(HOY();2)))>25;DIA(FECHA(AÑO(HOY());MES(HOY())+1;0));DIA(HOY()+(7-DIASEM(HOY();2))))
Verifico si faltan más de 7 días para llegar a fin de mes:
=SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()))>7;SI(DIA(HOY()+(7-DIASEM(HOY();2)))>25;DIA(FECHA(AÑO(HOY());MES(HOY())+1;0));DIA(HOY()+(7-DIASEM(HOY();2))));DIA(FECHA(AÑO(HOY());MES(HOY())+1;0)))
Obtengo el nombre del mes:
=SI(Y(DIASEM(HOY();2)>=1;DIASEM(HOY();2)<7); SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()))>7; SI(DIA(HOY()+(7-DIASEM(HOY();2)))>25; TEXTO(FECHA(AÑO(HOY());MES(HOY())+1;0);"mmmm"); TEXTO(HOY()+(7-DIASEM(HOY();2));"mmmm") ); TEXTO(FECHA(AÑO(HOY());MES(HOY())+1;0);"mmmm") ); TEXTO(HOY();"mmmm") )
A partir de la utilidad de las anteriores funciones y formulas, el resultado seria la siguiente función:
=CONCATENAR( "Semana del día "; DIA(HOY()); " de "; TEXTO(HOY();"mmmm"); " al día "; SI(Y(DIASEM(HOY();2)>=1;DIASEM(HOY();2)<7); SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()))>7; SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()+(7-DIASEM(HOY();2))))<4; DIA(FECHA(AÑO(HOY());MES(HOY())+1;0)); DIA(HOY()+(7-DIASEM(HOY();2))) ); DIA(FECHA(AÑO(HOY());MES(HOY())+1;0)) ); DIA(HOY()) ); " de "; SI(Y(DIASEM(HOY();2)>=1;DIASEM(HOY();2)<7); SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()))>7; SI((DIA(FECHA(AÑO(HOY());MES(HOY())+1;0))-DIA(HOY()+(7-DIASEM(HOY();2))))<4; TEXTO(FECHA(AÑO(HOY());MES(HOY())+1;0);"mmmm"); TEXTO(HOY()+(7-DIASEM(HOY();2));"mmmm") ); TEXTO(FECHA(AÑO(HOY());MES(HOY())+1;0);"mmmm") ); TEXTO(HOY();"mmmm") ) )
Espero que a alguien le sirva y ahorre tiempo.