Recuento 25 diciembre
- Jaime Franco Jimenez

- 30 ene 2024
- 2 Min. de lectura
Debemos de encontrar los recuentos de los nombres de los días de la semana de Navidad durante los últimos n años mencionados en A1, es decir, durante los últimos 100 años a partir del año actual.
Debemos de contar los dias 25 de diciembre de cada año.
El recuento lo debemos de hacer por dias de la semana.
Debemos de ordenar correctamente los nombres de los días de la semana.
En la celda A3, usamos LET, creamos una variable, usamos la función SECUENCIA, como argumento filas, seleccionamos la celda A1, omitimos el argumento columnas, como argumento inicio, usamos la función AÑO, como argumento usamos la función HOY, para extraer el año de la fecha actual, como argumento paso, ponemos -1.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);a)
Obtenemos una matriz desbordada en vertical con los años a partir del año actual contando hacia atrás.
Creamos otra variable, usamos la función FECHA, como argumento año, ponemos la variable “a”, como argumento mes, ponemos 12, como argumento día, ponemos 25, vamos a obtener el día 25 de diciembre para cada año.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);b)
Creamos otra variable, usamos la función DIASEM, como argumento numero de serie, ponemos la variable “b”, como argumento tipo, seleccionamos 1, es decir, la semana comienza en domingo y acaba en sábado.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;DIASEM(b;1);c)
Obtenemos una matriz desbordada con el número de día que corresponde con cada fecha.
Nos quedamos con los valores únicos.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;UNICOS(DIASEM(b;1));c)
Ordenamos.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;ORDENAR(UNICOS(DIASEM(b;1)));c)
Ya tenemos los dias de la semana ordenados de menor a mayor, correspondiendo al día 1 el domingo, y, al día 7 el sábado.
Creamos otra variable, usamos la función BYROW, como argumento array, ponemos la variable “c”, como argumento función, ponemos LAMBDA, y, declaramos una variable.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;ORDENAR(UNICOS(DIASEM(b;1)));d;BYROW(c
Como argumento calculo de LAMBDA, usamos la función SUMA, como argumento ponemos el doble signo negativo, abrimos un paréntesis, volvemos a usar la función DIASEM, como argumento numero de serie, ponemos la variable “b”, como argumento tipo, ponemos 1, e, igualamos a la variable “x”.
La función DIASEM que hemos igualado a la variable “x”, nos devolverá VERDADERO donde hay coincidencia, y, FALSO donde no la hay, pero, con la función SUMA, no podemos sumar valores booleanos, por eso, usamos el doble signo negativo, para convertir VERDADERO en 1, y, FALSO en 0.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;ORDENAR(UNICOS(DIASEM(b;1)));d;BYROW(c;LAMBDA(x;SUMA(--(DIASEM(b;1)=x))));d)
Obtenemos un recuento de los dias 25 de diciembre para cada día de la semana.
Usamos el argumento calculo de LET, usamos la función APILARH, como argumento matriz1, usamos la función TEXTO, como argumento valor, ponemos la variable “c”, como argumento formato, entre comillas dobles, ponemos “dddd”, como argumento matriz2, ponemos la variable “d”.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;ORDENAR(UNICOS(DIASEM(b;1)));d;BYROW(c;LAMBDA(x;SUMA(--(DIASEM(b;1)=x))));APILARH(TEXTO(c;"dddd");d))
Tenemos cada día de la semana junto con el recuento de dias para 25 de diciembre.
Volvemos al argumento calculo de LET, antes de APILARH, ponemos APILARV, como argumento matriz1, abrimos unas llaves, entre comillas dobles, ponemos Dia, ponemos barra inclinada, entre comillas dobles, ponemos Recuento, como argumento matriz2, es la función APILARH.
Con esto, ponemos un encabezado.
=LET(a;SECUENCIA(A1;;AÑO(HOY());-1);b;FECHA(a;12;25);c;ORDENAR(UNICOS(DIASEM(b;1)));d;BYROW(c;LAMBDA(x;SUMA(--(DIASEM(b;1)=x))));APILARV({"Dia"\"Recuento"};APILARH(TEXTO(c;"dddd");d)))
Pues ya lo tenemos.
Miguel Angel Franco












Comentarios