Cálculo del trimestre.
- Jaime Franco Jimenez
- 2 ene 2023
- 3 Min. de lectura
Anteriormente, hemos visto cómo podemos calcular el trimestre de una fecha, hemos comparado entre 1 y 3, entre 4 y 6, entre 7 y 9, y entre 10 y 12, pues, ahora, lo vamos a hacer de forma matricial, pero de una manera más corta.
Si el mes esta entre 1 y 3, quiere decir que es el trimestre1, si creo una lista con los valores 1, 4, 7, y, 10, y, busco el mes 1 entre los números 1, 4, 7, y, 10 con una coincidencia aproximada, me devolverá el numero 1, si busco el mes 5, me devolverá el número 4, de esta manera, catalogo cada numero de mes dentro de un grupo, pero claro, por ejemplo, el numero 10 no pertenece a ningún trimestre, debe de ser el trimestre 4.
Voy a crear una matriz bidimensional, estará compuesta de dos columnas, la primera columna tendrá los números 1,4,7, y, 10, y, la segunda columna contendrá los números 1,2,3, y, 4, para ello, en una celda, abrimos unas llaves, ponemos los números 1,4,7,10 separado por la barra invertida, ponemos punto y coma, a continuación, ponemos los números 1,2,3, y 4 separados por la barra invertida, cerramos las llaves, y, aceptamos.
={1\4\7\10;1\2\3\4}
Obtenemos una matriz desbordada de cuatro columnas y dos filas.

De esta manera, no puedo usar los valores como deseo, en una columna debo de tener los valores 1,4,7, y, 10, y, en otra columna, los valores 1,2,3, y 4, por lo que voy a transponer.
=TRANSPONER({1\4\7\10;1\2\3\4})

Como vamos a usar estos valores dentro de una funcion, voy a crear un nombre de rango, para ello, selecciono la funcion, y, pulso CTRL más C para copiar.
Vamos a la pestaña formulas, dentro de nombres definidos, hacemos clic en asignar nombre.

En la ventana siguiente, le voy a llamar trimestres, y, en la ventana se refiere a, borro lo que hay, y, pulso CTRL más V para pegar.

Aceptamos.
Ahora, voy a usar la funcion BUSCARV, donde como argumento valor buscado va a ser el mes de cada fecha, para ello, usaremos la funcion MES.
=BUSCARV(MES(Ventas[Fecha])
Punto y coma, como argumento matriz_tabla, ponemos el nombre de rango trimestres.
=BUSCARV(MES(Ventas[Fecha]);Trimestres
Punto y coma, como argumento numero de columna, ponemos 1, y, como tipo de coincidencia, seleccionamos aproximada.
Cerramos paréntesis y aceptamos.
=BUSCARV(MES(Ventas[Fecha]);Trimestres;1;VERDADERO)
Obtenemos una matriz desbordada con el numero al que le corresponde cada número de mes, por ejemplo, vemos que a la fecha 5/10/2022, le corresponde el numero 10, y, que a la fecha 12/03/2022, le corresponde el número 1.

Anteriormente, hemos creado una matriz bidimensional, que hemos usado como argumento matriz_tabla dentro de BUSCARV, lo siguiente es buscar cada numero obtenido en la primera columna de la matriz bidimensional, y, si hay coincidencia que me devuelva la segunda columna, de esta manera, obtendremos el numero de trimestre, para ello, vamos a usar otro BUSCARV, donde como argumento valor buscado es el BUSCARV anterior.
=BUSCARV(BUSCARV(MES(DATOS!$A$2:$A$14);Trimestres;1;VERDADERO)
Punto y coma, como argumento matriz_tabla, ponemos el nombre definido trimestres.
=BUSCARV(BUSCARV(MES(DATOS!$A$2:$A$14);Trimestres;1;VERDADERO);Trimestres
Punto y coma, como argumento numero de columna, ponemos 2, y, como tipo de coincidencia, en este caso, debe de ser exacta.
Cerramos paréntesis y aceptamos.
=BUSCARV(BUSCARV(MES(DATOS!$A$2:$A$14);Trimestres;1;VERDADERO);Trimestres;2;FALSO)
Vemos que obtenemos el numero de trimestre que corresponde con cada fecha.

Pero a mí me gustaría poder usar esta funcion en cualquier modelo, por lo que vamos a hacer uso de la funcion LAMBDA, y, la guardaremos como un nombre definido, ya sabemos que la una funcion LAMBDAsirve para crear funciones personalizadas.
Bien, en una celda escribo LAMBDA, y abro un paréntesis.
=LAMBDA(
El primer argumento es parámetro, o, calculo, en este caso, va a ser un parámetro, vamos a declarar una variable, por ejemplo, la voy a llamar fecha.
=LAMBDA(fecha
Punto y coma, el siguiente argumento vuelve a ser parámetro, o, calculo, en esta ocasión, va a ser calculo, el calculo es la funcion BUSCARV usada anteriormente, la diferencia es que en la funcion MES, en vez de especificar un rango de fechas, ponemos la variable fecha.
=LAMBDA(fecha;BUSCARV(BUSCARV(MES(fecha);Trimestres;1;VERDADERO);Trimestres;2;FALSO))
Lo último es pasar los valores para la variable fecha, para ello, abrimos un paréntesis, seleccionamos las fechas, cerramos paréntesis, y, aceptamos.
=LAMBDA(fecha;BUSCARV(BUSCARV(MES(fecha);Trimestres;1;VERDADERO);Trimestres;2;FALSO))(A2:A14)
Vemos que tenemos los mismos resultados que los obtenidos anteriormente.
Ahora, vamos a crear un nombre definido para la funcion LAMBDA, para ello, seleccionamos toda la funcion, excepto, los valores a pasar a la variable.

Pulsamos CTRL más C para copiar.
Vamos a la pestaña formulas, dentro de nombres definidos, hacemos clic en asignar nombre.

La voy a llamar funcion, y, en la ventana se refiere a, pulsamos CTRL mas V para pegar la funcion.

Aceptamos.
Tenemos otra hoja, donde tenemos mas fechas, y, queremos saber a que trimestre corresponde, para ello, en la celda B2, escribo el nombre definido funcion, vemos que se abre un paréntesis, porque espera los valores para la variable fecha, seleccionamos las fechas, cerramos paréntesis, y, aceptamos.
=Funcion(A2:A19)
Ya tenemos también el trimestre al que corresponde cada fecha.
Con esto, hemos creado una funcion personalizada que podemos usar en cualquier modelo.

Comments