INDEX MATCH en Google Sheets - otra forma de búsqueda vertical

  • Compartir Este
Michael Brown

Cuando necesitas encontrar datos en tu hoja que correspondan a un determinado registro clave, sueles recurrir a VLOOKUP de Google Sheets. Pero ahí lo tienes: VLOOKUP te abofetea con limitaciones casi de inmediato. Por eso es mejor que aumentes los recursos para la tarea aprendiendo INDEX MATCH.

INDEX MATCH en Google Sheets es una combinación de dos funciones: INDEX y MATCH. Cuando se utilizan en conjunto, actúan como una mejor alternativa para Google Sheets VLOOKUP. Vamos a descubrir sus capacidades juntos en esta entrada del blog. Pero primero, me gustaría darle un rápido recorrido por sus propias funciones en las hojas de cálculo.

    Función MATCH de Google Sheets

    Me gustaría empezar con Google Sheets MATCH porque es realmente sencillo. Analiza tus datos en busca de un valor específico y devuelve su posición:

    =MATCH(clave_busqueda, rango, [tipo_busqueda])
    • buscar_clave es el disco que estás buscando. Requerido.
    • gama es una fila o una columna en la que buscar. Obligatorio.

      Nota: MATCH sólo acepta matrices unidimensionales, ya sean filas o columnas.

    • tipo_búsqueda es opcional y define si la coincidencia debe ser exacta o aproximada. Si se omite, es 1 por defecto:
      • 1 significa que el rango se ordena en orden ascendente. La función obtiene el mayor valor menor o igual que su buscar_clave .
      • 0 hará que la función busque la coincidencia exacta en caso de que su rango no esté ordenado.
      • -1 indica que los registros se ordenan en orden descendente. En este caso, la función obtiene el valor más pequeño mayor o igual que su buscar_clave .

    He aquí un ejemplo: para obtener la posición de una determinada baya en la lista de todas las bayas, necesito la siguiente fórmula MATCH en mis Hojas de cálculo de Google:

    =MATCH("Arándano", A1:A10, 0)

    Función INDEX de Google Sheets

    Mientras que MATCH indica dónde buscar el valor (su ubicación en el intervalo), la función INDEX de Google Sheets obtiene el valor basándose en sus desplazamientos de fila y columna:

    =INDEX(referencia, [fila], [columna])
    • referencia es el rango en el que buscar. Requerido.
    • fila es el número de filas a desplazar desde la primera celda de su rango. Opcional, 0 si se omite.
    • columna al igual que fila También opcional, también 0 si se omite.

    Si especificas ambos argumentos opcionales (fila y columna), Google Sheets INDEX devolverá un registro de una celda de destino:

    =INDEX(A1:C10, 7, 1)

    Si omite uno de esos argumentos, la función obtendrá la fila o columna completa correspondiente:

    =INDEX(A1:C10, 7)

    Cómo utilizar INDEX MATCH en Google Sheets: ejemplos de fórmulas

    Cuando INDEX y MATCH se utilizan juntos en las hojas de cálculo, son los más poderosos. Pueden sustituir absolutamente Google Sheets VLOOKUP y obtener el registro requerido de una tabla basada en su valor clave.

    Crea tu primera fórmula INDEX MATCH para Google Sheets

    Supongamos que quieres obtener la información sobre las existencias de arándanos a partir de la misma tabla que he utilizado antes. Sólo he intercambiado las columnas B y C (más adelante descubrirás por qué).

    1. Ahora todas las bayas aparecen en la columna C. La función MATCH de Google Sheets te ayudará a localizar la fila exacta del arándano: 8

      =MATCH("Arándano", C1:C10, 0)

    2. Ponga toda esa fórmula MATCH en un fila en la función INDEX:

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))

      Este devolverá toda la fila con arándanos.

    3. Pero como lo único que necesita es la información sobre las existencias, especifique también el número de la columna de consulta: 3

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)

    4. ¡Voilà!

    5. Puede ir más allá y renunciar a ese último indicador de columna ( 2 Si sólo utiliza la columna de consulta ( B1:B10 ) en lugar de toda la tabla ( A1:C10 ) como primer argumento:

      =INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))

      Consejo: una forma más cómoda de comprobar la disponibilidad de varias bayas sería colocarlas en una lista desplegable ( E2 ) y remite tu función MATCH a la celda con esa lista:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      Una vez seleccionada la baya, el valor relacionado cambiará en consecuencia:

    ¿Por qué INDEX MATCH en Google Sheets es mejor que VLOOKUP?

    Ya sabes que INDEX MATCH de Google Sheets busca tu valor en una tabla y devuelve otro registro relacionado de la misma fila. Y sabes que VLOOKUP de Google Sheets hace exactamente lo mismo. Entonces, ¿para qué molestarse?

    La cosa es, INDEX MATCH tiene algunas ventajas importantes sobre VLOOKUP:

    1. La búsqueda por la izquierda es posible He cambiado las columnas de lugar antes para ilustrar esto: la función INDEX MATCH en Google Sheets puede y busca a la izquierda de la columna de búsqueda. VLOOKUP siempre busca en la primera columna del rango y busca coincidencias a su derecha - de lo contrario, sólo obtiene errores #N/A:

    2. No hay referencias desordenadas al añadir nuevas columnas y mover las existentes. Si añades o mueves columnas, INDEX MATCH reflejará los cambios automáticamente sin entrometerse en el resultado. Al utilizar referencias a columnas, Google Sheets las ajusta al instante:

      Intente hacer esto con VLOOKUP: requiere el número de pedido en lugar de referencias de celda para una columna de búsqueda. Por lo tanto, acabará obteniendo el valor incorrecto porque otra columna ocupa el mismo lugar - columna 2 en mi ejemplo:

    3. Considera el caso del texto cuando sea necesario (más información al respecto a continuación).
    4. Puede utilizarse para búsquedas verticales basadas en múltiples criterios.

    Le invito a examinar en detalle los dos últimos puntos.

    Búsqueda v sensible a mayúsculas y minúsculas con INDEX MATCH en Google Sheets

    INDEX MATCH es la opción ideal cuando se trata de distinguir entre mayúsculas y minúsculas.

    Supongamos que todas las bayas se venden de dos formas: sueltas (pesadas en el mostrador) y envasadas en cajas. Por lo tanto, hay dos apariciones de cada baya escritas en distintos casos en la lista, cada una con su propio ID que también varía en los casos:

    VLOOKUP devolverá el primer nombre que encuentre sin importar el caso.

    Por suerte, INDEX MATCH para Hojas de cálculo de Google puede hacerlo correctamente. Sólo tendrás que utilizar una función adicional: FIND o EXACT.

    Ejemplo 1. FIND para Vlookup con distinción entre mayúsculas y minúsculas

    FIND es una función de Google Sheets que distingue entre mayúsculas y minúsculas, por lo que es ideal para realizar búsquedas verticales con distinción entre mayúsculas y minúsculas:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))

    Veamos qué ocurre con esta fórmula:

    1. FIND escanea la columna C ( C2:C19 ) para el registro de E2 ( cereza Una vez localizada, la fórmula "marca" esa celda con un número -. 1 .
    2. MATCH busca esta marca - 1 - en la misma columna ( C ) y pasa el número de su fila a INDEX.
    3. INDEX baja a esa fila en la columna B ( B2:B19 ) y le enviará el registro deseado.
    4. Cuando termine de construir la fórmula, pulse Ctrl+Shift+Enter para añadir ArrayFormula al principio. Es necesario porque sin ella FIND no podrá buscar en matrices (en más de una celda). O puede escribir ' ArrayFormula desde el teclado.

    Ejemplo 2. EXACT para Vlookup sensible a mayúsculas y minúsculas

    Si sustituye BUSCAR por EXACTO, este último buscará los registros que tengan exactamente los mismos caracteres, incluidas las mayúsculas y minúsculas.

    La única diferencia es que EXACT "marca" una coincidencia con TRUE en lugar de número 1 Por lo tanto, el primer argumento de MATCH debe ser TRUE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))

    Google Sheets INDEX MATCH con múltiples criterios

    ¿Y si hay varias condiciones para obtener el registro?

    Comprobemos el precio del cereza que se vende en Cubos de PP y ya está agotándose :

    Organicé todos los criterios en las listas desplegables de la columna F. Y es Google Sheets INDEX MATCH que soporta múltiples criterios, no VLOOKUP. Aquí está la fórmula que tendrá que utilizar:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))

    Que no cunda el pánico :) En realidad, su lógica es bastante sencilla:

    1. CONCATENAR(F2:F4) combina los tres registros de las celdas con criterios en una sola cadena de la siguiente manera:

      CherryPP bucketSe acaba

      Se trata de un buscar_clave para MATCH, o, en otras palabras, lo que buscas en la tabla.

    2. A2:A24&C2:C24&D2:D24 constituyen una gama para que la función MATCH busque. Como los tres criterios tienen lugar en tres columnas separadas, de esta forma los combinas:

      CerezaBandeja de cartónEn stock

      Embalaje CherryFilmNo disponible

      CherryPP bucketSe acaba

      etc.

    3. El último argumento de MATCH - 0 - permite encontrar la correspondencia exacta para CherryPP bucketSe acaba entre todas esas filas de columnas combinadas. Como puedes ver, está en la 3ª fila.
    4. Y entonces INDEX hace lo suyo: busca el registro de la 3ª fila de la columna B.
    5. ArrayFormula se utiliza para permitir que otras funciones trabajen con matrices.

    Consejo: Si la fórmula no encuentra ninguna coincidencia, devolverá un error. Para evitarlo, puedes envolver toda la fórmula en IFERROR (que sea el primer argumento) e introducir lo que quieras ver en una celda en lugar de errores como segundo argumento:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "No encontrado")

    Mejor alternativa a INDEX MATCH en Google Sheets - Múltiples coincidencias VLOOKUP

    Sea cual sea la función de búsqueda que prefiera, VLOOKUP o INDEX MATCH, existe una alternativa mejor a ambas.

    Multiple VLOOKUP Matches es un complemento especial para Google Sheets diseñado para:

    • búsqueda sin fórmulas
    • búsqueda en todas las direcciones
    • búsqueda por múltiples condiciones para diferentes tipos de datos: texto, números, fechas, hora, etc.
    • busca varios partidos, tantos como necesites (siempre que haya tantos en tu mesa, claro)

    La interfaz es sencilla, por lo que no tendrás que dudar de si lo estás haciendo todo correctamente:

    1. Selecciona el rango de fuentes.
    2. Establece el número de coincidencias y columnas a devolver.
    3. Ajuste las condiciones utilizando los operadores predefinidos ( contiene, =, no vacío , entre etc.).

    También podrás:

    • previsualizar el resultado
    • decidir dónde colocarlo
    • y cómo: como fórmula o sólo valores

    No pierdas la oportunidad de probar el complemento. Instálalo desde Google Workspace Marketplace. Su página de tutoriales te explicará cada opción con todo detalle.

    También hemos preparado un vídeo instructivo especial:

    Nos vemos en los comentarios o en el próximo artículo ;)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.