Fórmula de Excel: contar fechas por día de la semana -

Tabla de contenido

Fórmula genérica

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Resumen

Para contar las fechas por día de la semana (es decir, contar los lunes, martes, miércoles, etc.), puede utilizar la función SUMPRODUCT junto con la función WEEKDAY. En el ejemplo que se muestra, la fórmula en F4 es:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Nota: "fechas" es el rango con nombre B4: B15.

Explicación

Quizás se pregunte por qué no estamos usando COUNTIF o COUNTIFs. Estas funciones parecen la solución obvia. Sin embargo, sin agregar una columna auxiliar que contenga un valor de día de la semana, no hay forma de crear un criterio para CONTAR.SI para contar los días de la semana en un rango de fechas.

En su lugar, usamos la versátil función SUMPRODUCT, que maneja las matrices con elegancia sin la necesidad de usar Control + Shift + Enter.

Estamos usando SUMPRODUCT con un solo argumento, que consta de esta expresión:

--(WEEKDAY(dates,2)=E4)

Trabajando desde adentro hacia afuera, la función WEEKDAY se configura con el argumento opcional 2, lo que hace que devuelva números del 1 al 7 para los días de lunes a domingo, respectivamente. Esto hace que sea más fácil enumerar los días en orden con los números de la columna E en secuencia.

WEEKDAY luego evalúa cada fecha en el rango nombrado "fechas" y devuelve un número. El resultado es una matriz como esta:

(1;3;7;1;5;2;7;1;7;5;4;7)

Los números devueltos por WEEKDAY luego se comparan con el valor en E4, que es 1:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

El resultado es una matriz de valores VERDADERO / FALSO.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

SUMPRODUCT solo funciona con números (no con texto o booleanos) por lo que usamos el doble negativo para convertir los valores VERDADERO / FALSO a uno y ceros:

(1;0;0;1;0;0;0;1;0;0;0;0)

Con una sola matriz para procesar, SUMPRODUCT suma los elementos y devuelve el resultado, 3.

Tratar con fechas en blanco

Si tiene celdas en blanco en la lista de fechas, obtendrá resultados incorrectos, ya que la función DÍA DE LA SEMANA devolverá un resultado incluso cuando no haya fecha. Para manejar celdas vacías, puede ajustar la fórmula de la siguiente manera:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Multiplicar por la expresión (fechas "") es una forma de cancelar las celdas vacías.

Articulos interesantes...