top of page

FILTRAR, TEXTOANTES, y, TEXTODESPUES

Vamos a ver un ejemplo de las funciones FILTRAR, TEXTOANTES, y, TEXTODESPUES.


Tenemos el siguiente modelo de datos, donde vemos que la provincia, el centro comercial, y, el producto, están unidos, separados por un delimitador, que es la coma.








Nos piden, tal cual está el modelo, sin tocar nada, que creemos una lista de provincias únicas, y, calcular los totales para cada provincia.


Vemos que en la columna A, tenemos unido provincia, centro, y, producto, por lo que debemos de quedarnos solo con la provincia, este sería el primer paso.


Primero, debemos de extraer la provincia, para ello, vamos a usar la función TEXTOANTES, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


Decir, que el modelo esta en formato de tabla.


=TEXTOANTES (


El primer argumento es, texto, pues seleccionamos la columna provincia/centro/producto.


=TEXTOANTES(Datos5[Provincia/Centro/Producto]


Punto y coma, el siguiente argumento es delimitador, pues entre comillas dobles, ponemos la coma, cerramos paréntesis, y, aceptamos.


=TEXTOANTES(Datos5[Provincia/Centro/Producto];",")


Tenemos una matriz desbordada, con todas las provincias.

























Pero, estas provincias se repiten, y, queremos provincias únicas, por lo que después del signo igual, usamos la función UNICOS.


=UNICOS(TEXTOANTES(Datos5[Provincia/Centro/Producto];","))


También, la vamos a ordenar, por lo que vamos a usar la función ORDENAR, con los argumentos predeterminados.


=ORDENAR(UNICOS(TEXTOANTES(Datos5[Provincia/Centro/Producto];",")))


Ya tenemos las provincias únicas, y, ordenadas.
































Lo siguiente es calcular el total para cada provincia.


Voy a usar la función FILTRAR, para que me filtre la columna total, por la primera provincia, para ello, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


=FILTRAR(


Como primer argumento, que es array, seleccionamos la columna de total.


=FILTRAR(Datos5[Total]


El siguiente argumento es include, donde debemos de volver a usar la función TEXTOANTES, e, igualarlo al valor de la celda H2, que es la primera provincia.


Cerramos paréntesis, y, aceptamos.


=FILTRAR(Datos5[Total];TEXTOANTES(Datos5[Provincia/Centro/Producto];",")=H2)


Tenemos una matriz desbordada con los totales para la primera provincia, que es Albacete.





















Pero, como queremos los totales, después del signo igual, usamos la función SUMA.


=SUMA(FILTRAR(Datos5[Total];TEXTOANTES(Datos5[Provincia/Centro/Producto];",")=H2))


Ya tenemos el total para la primera provincia.








Arrastramos, porque no tenemos que fijar nada.


Ya tenemos los totales para cada provincia.














Lo siguiente que queremos hacer, es calcular el total para cada provincia, y, para cada producto.


La lista de provincias únicas, ya la tenemos, vamos a crear la lista de productos únicos, pero en este caso, vamos a usar la función TEXTODESPUES.


Escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.


=TEXTODESPUES(


El primer argumento es texto, pues seleccionamos la columna provincia/centro/producto.


=TEXTODESPUES(Datos5[Provincia/Centro/Producto]


Punto y coma, el siguiente argumento es, delimitador, pues entre comillas dobles, ponemos la coma.


=TEXTODESPUES(Datos5[Provincia/Centro/Producto];","


Punto y coma, el siguiente argumento es, a partir de que delimitador tengo que extraer, en este caso, a partir del delimitador 2, después del primer delimitador, tenemos centro, y, después del segundo delimitador, tenemos producto, por eso, ponemos el número 2.


Cerramos paréntesis, y, aceptamos.


=TEXTODESPUES(Datos5[Provincia/Centro/Producto];",";2)


Tenemos una matriz desbordada con los productos, pero igual que antes, se repiten, por lo volvemos a hacer uso de la función UNICOS.


=UNICOS(TEXTODESPUES(Datos5[Provincia/Centro/Producto];",";2))


Pero, lo quiero en horizontal, voy a hacer uso de la función TRANSPONER.


=TRANSPONER(UNICOS(TEXTODESPUES(Datos5[Provincia/Centro/Producto];",";2)))


Y ya lo tenemos.






Ahora, tenemos que calcular los totales, para ello, voy a hacer uso de la función FILTRAR, de nuevo, pero en este caso, debemos de especificar dos condiciones.


La función FILTRAR, hasta el primer argumento, es igual que la anterior, con la diferencia que la condición la debemos de encerrar entre paréntesis.


=FILTRAR(Datos[Total];(TEXTOANTES(Datos[Provincia/Centro/Producto];",")=K2)


Ahora, ponemos el símbolo de multiplicación (*), ya sabemos que es igual que el operador lógico Y, es decir, nos devuelve VERDADERO, si todas las condiciones que pongamos se cumplen.


Abrimos un paréntesis, para poner la siguiente condición, donde vamos a usar la sintaxis anterior de la función TEXTODESPUES, para extraer cada producto, y, lo igualamos al valor de la celda L1, donde se encuentra el primer producto.


Cerramos paréntesis de la condición, y, paréntesis de la función FILTRAR.


=FILTRAR(Datos[Total];(TEXTOANTES(Datos[Provincia/Centro/Producto];",")=K2)*(TEXTODESPUES(Datos[Provincia/Centro/Producto];",";2)=L1)))


Tenemos una matriz desbordada con los totales para la provincia de Albacete, del producto aspiradora.


























Como queremos el total, después del signo igual, usamos la función SUMA.







Ahora, debemos de copiar tanto hacia abajo, como hacia la derecha, por lo que debemos de fijar la columna de K2, para que, al copiar hacia la derecha, la columna no se actualice, y, la fila de L1, para que, al copiar hacia abajo, la fila no se actualice.


=SUMA(FILTRAR(Datos[Total];(TEXTOANTES(Datos[Provincia/Centro/Producto];",")=$K2)*(TEXTODESPUES(Datos[Provincia/Centro/Producto];",";2)=L$1)))


Seleccionamos la celda con la función, pulsamos CTRL mas C, para copiar, seleccionamos todo el rango, y, pulsamos CTRL más V, para pegar.


Ya tenemos todos los totales, pero vemos que hay sitios, donde no ha habido ventas, y, nos devuelve error, pues vamos a hacer uso de la función SI.ERROR, y, le decimos que si devuelve un error, que ponga un texto en blanco.


=SI.ERROR(SUMA(FILTRAR(Datos[Total];(TEXTOANTES(Datos[Provincia/Centro/Producto];",")=$K2)*(TEXTODESPUES(Datos[Provincia/Centro/Producto];",";2)=L$1)));"")


Ya tenemos hecho nuestro cuadro.






















Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page