[Súper Truco] Cómo buscar datos de varias columnas en varias columnas con BUSCARV

buscarv en varias columnas excel

El título puede parecer un poco confuso. El objetivo de este tutorial es mostrarte cómo buscar con BUSCARV el contenido de varias celdas a la vez, en un rango donde la columna de búsqueda no es una, sino dos.

Hace unos días recibí un correo de un amigo al que le habían enviado un libro de Excel con una fórmula que no entendía:

{=BUSCARV(E2&F2;SI({1\0};$A$2:$A$6&$B$2:$B$6;$C$2:$C$6);2;FALSO)}

La pregunta que me hacía era “¿qué significa esa función SI dentro de BUSCARV?”. Más concretamente lo que a él le extrañaba era eso de {1\0}.

Javier, te respondo por la web para compartirlo y que otras personas también puedan aprenderlo, 🙂

Antes de nada, te dejo que descargues el libro para que puedas ir siguiendo la explicación con un ejemplo que creé para responderle:

Te recuerdo la sintaxis de BUSCARV:

=BUSCARV(valor_buscado;matriz_buscar_en;indicador_columnas;[ordenado])

Los argumentos en color rojo son obligatorios.

función buscarv varias columnas excel

En el ejemplo puedes ver en la parte izquierda una tabla con una serie de categorías y subcategorías de productos, los cuales tienen asignado un descuento. Con los datos de búsqueda de las columnas E y F, se trata de buscar el descuento correspondiente en la tabla de la izquierda.

¿Cómo funciona la fórmula?

En primer lugar déjame decirte que se trata de una fórmula matricial, es decir, que no devuelve un solo resultado, sino una matriz. Para introducir este tipo de fórmulas debes pulsar Ctrl + Mayús + Intro.

buscarv varias columnas excel

  1. El símbolo & se utiliza para concatenar o unir los valores de las celdas E2 y F2 para hacer la búsqueda combinada. En el ejemplo sería como buscar “TornilloHexagonal”.
  2. La función SI crea una matriz, que es el argumento matriz_buscar_en de la fórmula. Esta matriz tiene dos columnas.

Recuerda la sintaxis de SI:

=SI(condicion;valor_si_verdadero;[valor_si_falso])

La matriz {1\0} son los equivalentes numéricos de VERDADERO y FALSO y son la condición de la función SI.

Función BUSCARV varias columnas Excel

Fíjate cómo el argumento Valor si VERDADERO utiliza también el símbolo & para unir la categoría y la subcategoría.

  1. Para finalizar, indicador_de_columnas le dice a Excel la columna que tiene que devolver, en este caso es la segunda columna de la matriz, es decir, el rango que contiene los descuentos.

¿Qué se te pasa por la cabeza?

Javier, espero haber aclarado tu duda…

Este es uno de los trucos que enseño en mi libro BUSCARV y otras funciones de búsqueda.

¿Habías visto antes esta forma de utilizar BUSCARV?

Cuéntamelo en los comentarios.

Respuestas

  1. Este uso de BUSCARV con forma matricial, y que sirve también para la concatenación alternativa de INDICE y COINCIDIR, es verdaderamente útil y su necesidad no es infrecuente en el ámbito administrativo, así que esta entrada es muy valiosa.

    No obstante, me parece oportuna esta puntualización para evitar errores en algunos casos. Cuando el valor buscado y las columnas en las que queremos buscar contienen números o ciertas combinaciones de letras, la mera concatenación mediante el ampersand puede provocar hallazgos no deseados. Por ejemplo, si estuviésemos buscando un 11 y un 5, podríamos obtener el resultado (equivocado) correspondiente a un 1 y un 15, porque ambas concatenaciones son “115”. Ocurriría igual si buscásemos un “CA” y “F” donde ya hubiera un “C” y “AF”, porque ambas se concatenan como “CAF”. Para afinar un poco la búsqueda, en vez de buscar un A&B (espero que se entienda lo que pretendo ilustrar ), puede ser preferible intercalar algún carácter separador que no pueda estar en los datos originales, como A&”-“&B o A&”/”&B; así, en los ejemplos anteriores buscaríamos “11/5” (que ya no se puede confundir con “1/15”) o “CA/F” (que ya no se confunde con “C/AF”). Obviamente, ese separador arbitrario debe intercalarse al construir el valor buscado y también al designar las columnas en las que se debe buscar.

    1. Efectivamente, tienes toda la razón. En el ejemplo propuesto es muy complicado que se llegue a dar el caso que planteas. No obstante, si necesitas una fórmula como la que indicas, puedes utilizar esta:

      {=BUSCARV(E2&”-“&F2;SI({1\0};$A$2:$A$6&”-“&$B$2:$B$6;$C$2:$C$6);2;FALSO)}

      ¡Ojo! es matricial

  2. Hay un error cuando se incrementa una nueva fila es decir.. incremente la fila 7 con los datos:
    Categoria Sub Categoria Descuento
    Tornillo Plana 3.00%
    Al hacer la funcion da un error… la verdad no entiendo porque ocurre o es que no acepta valores repetidos en la sub categoria? o como debo modificar la formula?

    1. Luis, para que la fórmula funcione correctamente, debes modificar las referencias de las celdas para que se adapten a las nuevas dimensiones de los rangos.

  3. Yo lo que he hecho para estas busquedas es insertar una columna auxiliar antes del rango del búsqueda donde concateno todas columnas o datos a buscar ejemplo, suponiendo que recorro la tabla del ejemplo a B1 a H7:
    1. En la columna A pongo =B2&”|”&C2 y ya en la celda de búsqueda =BUSCARV(F2&”|”&G2, A$2:D$17,4,0)

  4. Hola.

    Todavía no me he subscrito pues actualmente no utilizo excel en el trabajo. De todos modos me gusta ir revisando foros para aprender más todavía, sabiendo que pronto volveré a utilizarlo.
    He entendido todo el artículo pero no sirve de nada si no logro comprender en su totalidad la función SI, el {1\0}. De veras que me he esforzado pero no hay forma. Seguramente tiene que ver con que mis conocimientos han sido únicamente por vocación personal y no debo tener el “fondo” que hace falta.
    Gracias.

Los comentarios están cerrados.