Fórmula genérica
=SUMAPRODUCTO((holidays>=start)*(holidays<=end))
Explicación
Para contar los días festivos que ocurren entre dos fechas, puede usar la función SUMAPRODUCTO.
En el ejemplo que se muestra, la fórmula en F8 es:
La primera expresión prueba cada fecha de vacaciones para ver si es mayor o igual que la fecha de inicio en F5:
{FALSO; FALSO; FALSO; FALSO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO}
La segunda expresión prueba cada fecha de vacaciones para ver si es menor o igual que la fecha de finalización en F6:
{VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; FALSO}
La multiplicación de estas dos matrices coacciona automáticamente los valores VERDADERO / FALSO a unos y ceros, dando como resultado matrices que se ven así:
En el ejemplo que se muestra, la fórmula en F8 es:
=SUMAPRODUCTO((B4:B12>=F5)*(B4:B12<=F6))
Cómo funciona esta fórmula
Esta fórmula usa dos expresiones en una sola matriz dentro de la función SUMAPRODUCTO.La primera expresión prueba cada fecha de vacaciones para ver si es mayor o igual que la fecha de inicio en F5:
Esto devuelve una matriz de valores VERDADERO / FALSO como este:(B4:B12>=F5)
{FALSO; FALSO; FALSO; FALSO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO}
La segunda expresión prueba cada fecha de vacaciones para ver si es menor o igual que la fecha de finalización en F6:
que devuelve una matriz de valores VERDADERO / FALSO como este:(B4:B12<=F6)
{VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; VERDADERO; FALSO}
La multiplicación de estas dos matrices coacciona automáticamente los valores VERDADERO / FALSO a unos y ceros, dando como resultado matrices que se ven así:
Después de la multiplicación, tenemos solo una matriz como esta:=SUMAPRODUCTO(({0;0;0;0;1;1;1;1;1})*({1;1;1;1;1;1;1;1;0}))
Finalmente, SUMAPRODUCTO suma los elementos en la matriz y devuelve 4.=SUMAPRODUCTO({0;0;0;0;1;1;1;1;0})
Días festivos solo entre semana
Para contar los días festivos que ocurren solo de lunes a viernes (de lunes a viernes), puede extender la fórmula de esta manera:donde rng es un rango que contiene fechas de vacaciones.=SUMAPRODUCTO((rng>=F5)*(rng<=F6)*(DIASEM(rng,2)<6))
0 comentarios:
Publicar un comentario