Total mes seleccionado hasta ultimo mes
- Jaime Franco Jimenez

- 15 ene 2024
- 2 Min. de lectura
Tenemos el modelo de datos que hemos usado para otros ejemplos, donde tenemos una columna llamada mes.
En otra columna, tenemos los meses, y, el total por meses, también, tenemos en la celda K1, un desplegable para seleccionar un mes.
Vamos a seleccionar un mes, y, debemos de mostrar el total desde el mes seleccionado hasta el último mes del año.
En la celda M2, usamos LET, creamos una variable, y, seleccionamos los meses.
=LET(xx;J2#;xx)
Creamos otra variable, usamos la función ENCONTRAR, como argumento valor buscado, ponemos la celda K1, como argumento dentro del texto, ponemos la variable “xx”.
=LET(xx;J2#;a;ENCONTRAR(K1;xx);a)
Obtenemos una matriz desbordada en vertical donde tenemos la posición del primer carácter donde hay coincidencia, y, error donde no hay coincidencia.
Preguntamos si es numero el resultado de ENCONTRAR.
=LET(xx;J2#;a;ESNUMERO(ENCONTRAR(K1;xx));a)
Obtenemos VERDADERO donde es número, y, FALSO donde no lo es.
Usamos el condicional SI, preguntamos que, si el resultado de ESNUMERO es igual a VERDADERO, que nos devuelva la fila de la variable “xx”, en caso contrario, que devuelva un error.
=LET(xx;J2#;a;SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());a)
Tenemos la fila donde es VERDADERO, y, error donde es FALSO.
Usamos la función ENCOL, como argumento matriz, es el condicional SI, como argumento ignorar, seleccionamos 3.
=LET(xx;J2#;a;ENCOL(SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());3);a)
Tenemos el número de fila que corresponde con el mes seleccionado.
Creamos otra variable, usamos la función FILAS, como argumento matriz, ponemos la variable “xx”, y, sumamos 1.
=LET(xx;J2#;a;ENCOL(SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());3);b;FILAS(xx)+1;b)
Nos devuelve 13, que es la fila del último mes.
Creamos otra variable, a la variable “b”, restamos la variable “a” y sumamos 1.
=LET(xx;J2#;a;ENCOL(SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());3);b;FILAS(xx)+1;c;b-a+1;c)
Nos devuelve 4, esto nos índice que, a partir del mes seleccionado, incluido el mes seleccionado, debemos de seleccionar 4 meses.
Usamos el argumento calculo de LET, usamos la función INDICE, como argumento matriz, seleccionamos la columna K, como argumento numero de fila, usamos la función MAX, como argumento ponemos la variable “c”, omitimos el argumento columnas, como argumento inicio, volvemos a usar la función MAX, y, como argumento ponemos la variable “a”.
=LET(xx;J2#;a;ENCOL(SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());3);b;FILAS(xx)+1;c;b-a+1;INDICE(K:K;SECUENCIA(MAX(c);;MAX(a))))
¿Por qué usamos la función MAX?
Si en la función SECUENCIA, ponemos solo la variable, nos devuelve el primer valor, porque no puede trabajar con la variable de forma matricial, pero, si usamos una función que trabaje con la variable, el resultado que obtenemos si es reconocido por la función SECUENCIA.
Tenemos los totales desde el mes seleccionado hasta el último mes del año.
Usamos la función SUMA, antes de INDICE.
=LET(xx;J2#;a;ENCOL(SI(ESNUMERO(ENCONTRAR(K1;xx));FILA(xx);NOD());3);b;FILAS(xx)+1;c;b-a+1;SUMA(INDICE(K:K;SECUENCIA(MAX(c);;MAX(a)))))
Ya tenemos el total desde el mes seleccionado hasta el último mes.
Miguel Angel Franco












Comentarios