martes, 11 de febrero de 2020

Nueva función BUSCARX o XLOOUKP

Pocos días atrás los usuarios de Office 365 canal mensual (pronto demás canales) disponemos de una función mejorada: COINCIDIRX o XMATCH:
= BUSCARX(valor_buscado; matriz_buscada; matriz_devuelta; [si_no_se_encuentra]; [modo_coincidencia]; [modo_búsqueda])

siendo:
Valor_buscado: El valor de búsqueda

Matriz_buscada: La matriz o rango para buscar...

Matriz_devuelta: La matriz o rango que se devolverá...

[si_no_se_encuentra]: Cuando no se encuentre una coincidencia válida, devuelva el texto indicado.
Si no se encuentra una coincidencia válida y falta este parámetro se devolverá #N/D.

[modo_coincidencia]:El tipo de coincidencia:
0: coincidencia exacta (predeterminado). Si no se encuentra ninguna, devuelve #N/D.
-1: coincidencia exacta o el siguiente elemento menor
1: coincidencia exacta o el siguiente elemento de mayor tamaño
2: coincidencia de caracteres comodín (cuando *, ? y ~ tiene un significado especial).

[modo_búsqueda]: el tipo de búsqueda:
1: Búsqueda del primero al último (predeterminado).
-1: Búsqueda del último al primero (búsqueda inversa).
2: Búsqueda binaria en orden ascendente (si no está ordenado, se devolverán resultados no válidos).
-2: Búsqueda binaria en orden descendente (si no está ordenado, se devolverán resultados no válidos).


Esta función es una 'mezcla' potente de la conocida BUSCARV / BUSCARH y de la no tanto BUSCAR... concluyendo que se convertirá pronto en la función (una de ellas) más empleada por todos los usuarios... Ya que la función BUSCARX busca elementos en una tabla o en un rango por filas; con BUSCARX podremos buscar en una columna un término de búsqueda y devolver un resultado de la misma fila en otra columna, independientemente del lado de la columna devuelto (a diferencia de BUSCARV que exige se encuentre a su derecha...).
Otro aspecto relevante de BUSCARX es que, a diferencia de BUSCARV, BUSCAR puede devolver una matriz con varios elementos!!.

Veamos algunos ejemplos.


En la imagen de nuestro listado aplicamos dos usos sencillos de búsqueda:

Nueva función BUSCARX o XLOOUKP


Vemos en G3 la fórmula:
=BUSCARX(F3;Tabla1[Empleado];Tabla1[Num empl];"no encontrado";0;1)

que localiza un dato a la izquierda del rango donde realizamos la búsqueda...
Además indicamos qué texto queremos ver (qué hacer) si no hay coincidencia exacta.

En G7 insertamos la fórmula:
=BUSCARX(F7;Tabla1[Empleado];Tabla1[[País]:[Ventas]];"-";0;1)
la cual se desborda en dos columnas automáticamente!!, ya que nuestro argumento de 'matriz_devuelta' consta de dos columnas!.


En la imagen siguiente vemos un ejemplo donde hacemos un doble uso de BUSCARX.

Nueva función BUSCARX o XLOOUKP


En este ejemplo en la celda D12 insertamos (y luego copiaremos en E12 y F12):
=BUSCARX(D$11;$B$3:$B$8;BUSCARX($C$12;$C$2:$G$2;$C$3:$G$8))

en esta función identificamos primero el texto 'CN' ('MARGEN' o 'RDI') en el rango B3:B8.
la matriz devuelta la obtenemos con BUSCARX ( BUSCARX($C$12;$C$2:$G$2;$C$3:$G$8) ), la cual realiza la búsqueda horizontal del año.


Un ejemplo más, donde podemos emplear BUSCARX como identificador de referencias, al igual que nos permitiría INDICE o incluso BUSCAR.

Nueva función BUSCARX o XLOOUKP


En la celda D16 vemos la siguiente fórmula:
=SUMA(BUSCARX(D$15;$B$3:$B$8;BUSCARX($B$16;$C$2:$G$2;$C$3:$G$8)):BUSCARX(D$15;$B$3:$B$8;BUSCARX($C$16;$C$2:$G$2;$C$3:$G$8)))

generada a partir del ejemplo previo... el cual identifica una posición dentro del rango, una celda.
En concreto para el ejemplo:
BUSCARX(D$15;$B$3:$B$8;BUSCARX($B$16;$C$2:$G$2;$C$3:$G$8))
equivaldría a la celda D3
mientras que
BUSCARX(D$15;$B$3:$B$8;BUSCARX($C$16;$C$2:$G$2;$C$3:$G$8))
equivaldría a la celda F3

todo combinado, y usando el resultado como referencia, tendríamos la SUMA(D3:F3), de manera dinámica.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.