Excel formula: Get last weekday in month

Fórmula genérica

=FIN.MES(date,0)+1-DIASEM(FIN.MES(date,0)+1-dow)

Explicación

Para obtener el último día de la semana en un mes (es decir, el último sábado, el último viernes, el último lunes, etc.) puede usar una fórmula basada en las funciones FIN.MES y DIASEM.
En el ejemplo que se muestra, la fórmula en D5 es:
=FIN.MES(B5,0)+1-DIASEM(FIN.MES(B5,0)+1-C5)

Cómo funciona esta fórmula

Primero, esta fórmula determina el primer día del próximo mes * después * de una fecha determinada. Hace esto usando FIN.MES para obtener el último día del mes y luego agregando un día:
=FIN.MES(B5,0)+1
A continuación, la fórmula calcula el número de días necesarios para "retroceder" al último día de la semana solicitado en el mes anterior (es decir, el mes de la fecha original):
DIASEM(FIN.MES(B5,0)+1-C5)
Dentro de DIASEM, FIN.MES se usa nuevamente para obtener el primer día del próximo mes. A partir de esta fecha, el valor del día de la semana se resta y el resultado se introduce en DIASEM, que devuelve el número de días para retroceder.
Por último, los días de reversión se restan del primer día del mes siguiente, lo que arroja el resultado final.

Otros días de la semana

En la forma general de la fórmula en la parte superior de la página, el día de la semana se abrevia "dow". Este es un número entre 1 (domingo) y 7 (sábado) que se puede cambiar para obtener un día diferente de la semana. Por ejemplo, para obtener el último jueves de un mes, configure dow en 5.
Nota: Me encontré con esta fórmula en una respuesta en el foro MrExcel de Barry Houdini.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT