En el siguiente, tenemos un modelo con una primera columna que es fecha, tenemos una segunda columna, donde tenemos unidos, provincia, centro, y, producto, separado por el guion medio, y, una tercera columna con el precio de cada producto.
En la parte inferior, tenemos dos centros.
Queremos recuperar el producto y el precio del producto para cada centro.
Tenemos que extraer el precio del producto vendido en los centros arriba indicados, para ello, entonces, de la columna provincia_centro_producto, tengo que extraer el centro, para ello, voy a usar la función TEXTDESPUES, como como argumento texto, seleccionamos la columna provincia_centro_producto.
=TEXTODESPUES(Venta[Provincia_centro_producto]
Punto y coma, como argumento delimitador, entre comillas dobles, ponemos el guion medio.
Cerramos paréntesis, y, aceptamos.
=TEXTODESPUES(Venta[Provincia_centro_producto];"-")
Obtenemos una matriz desbordada con el centro y el producto, que es lo que viene después del primer delimitador.
Para quedarnos con el centro comercial, debemos de usar la función TEXTOANTES, donde como argumento texto, es la expresión anterior, y, como argumento delimitador, entre comillas dobles, ponemos el guion medio.
=TEXTOANTES(TEXTODESPUES(Venta[Provincia_centro_producto];"-");"-")
Ya tenemos rescatado el centro comercial de cada fila.
Otra forma de hacerlo, pero no seria matricial, es con la función DIVIDIRTEXTO, donde como argumento texto, seleccionamos B2.
=DIVIDIRTEXTO(B2
Punto y coma, como argumento delimitador de columna, entre comillas dobles, ponemos el guion medio.
Cerramos paréntesis y aceptamos.
=DIVIDIRTEXTO(B2;"-")
Obtenemos una matriz desbordada con los tres valores.
Ahora, usamos la función INDICE, donde como argumento matriz, es la expresión anterior, omito el argumento número de fila, porque nos vamos a mover en columnas, como argumento número de columna, ponemos 2.
=INDICE(DIVIDIRTEXTO(B2;"-");2)
Arrastramos, y, tenemos, también, extraído los centros.
Ahora, voy a usar la función BUSCARX, para encontrar el valor de las celdas A12:A13, el primer centro comercial, seria el argumento valor buscado.
=BUSCARX(A12:A13
Punto y coma, el siguiente argumento es matriz buscada, que es la expresión TEXTOANTES junto con TEXTODESPUES, aunque también podemos hacer la expresión que hemos hecho con INDICE.
=BUSCARX(A12:A13;TEXTOANTES(TEXTODESPUES(Venta[Provincia_centro_producto];"-");"-")
Punto y coma, como argumento matriz devuelta, seleccionaos la columna de precios, cerramos paréntesis, y, aceptamos.
=BUSCARX(A12:A13;TEXTOANTES(TEXTODESPUES(Venta[Provincia_centro_producto];"-");"-");Venta[Precio])
Y tenemos el precio del producto para cada centro comercial, como una matriz desbordada.
Y si tenemos la misma provincia, en mismo centro, pero un producto diferente.
Queremos rescatar el precio del producto frigorífico para la provincia de Granada, y, el centro comercial Nervión.
Veamos cómo hacerlo.
Con la función TEXTODESPUES, voy a extraer el centro comercial y el producto.
=TEXTODESPUES(tabla1[Provincia_centro_producto];"-")
Obtenemos una matriz desbordada con centro y producto.
Esta expresión la voy a comparar con el centro y producto a buscar.
Para ello, voy a usar la función UNIRCADENAS, donde como argumento delimitador, entre comillas dobles, ponemos el guion medio, en la siguiente ventana, omitimos celdas vacías, y, como argumento texto1, seleccionamos centro y producto.
=TEXTODESPUES(tabla1[Provincia_centro_producto];"-")=UNIRCADENAS("-";VERDADERO;A12:B12)
Obtenemos una matriz desbordada con FALSO donde no hay coincidencia, y, VERDADERO donde la hay.
Ahora, voy a usar la función FILTRAR, donde la expresión anterior, es el argumento Include, y, el argumento array, es la columna de precios, quiere decir que nos devolverá solo las filas que sean verdaderas.
=FILTRAR(tabla1[Precio];TEXTODESPUES(tabla1[Provincia_centro_producto];"-")=UNIRCADENAS("-";VERDADERO;A12:B12))
Aceptamos, y, tenemos el precio para el producto frigorífico de la provincia de Granada, y, el centro comercial Nervión.
Arrastramos, y, ya tenemos ambos precios.
Comments