excel indexing match vlookup

Excel-BUSCARV frente a ÍNDICE/PARTIDO-¿Cuál es mejor?



indexing match (1)

Prefiero usar INDEX / MATCH en prácticamente todas las situaciones porque es mucho más flexible y tiene el potencial de ser mucho más eficiente dependiendo de qué tan grande sea la tabla de búsqueda.

El único momento en el que realmente puedo justificar el uso de VLOOKUP es para tablas muy sencillas donde el número de índice de la columna es dinámico, aunque incluso en este caso, INDEX / MATCH es igualmente viable.

Daré algunos ejemplos específicos a continuación para demostrar las diferencias detalladas entre los dos métodos.

INDEX / MATCH puede buscar a la izquierda (o en cualquier otro lugar que desee)

Estas son probablemente las ventajas más obvias de INDEX / MATCH , así como una de las mayores caídas de VLOOKUP . VLOOKUP solo puede buscar a la derecha, INDEX / MATCH puede buscar desde cualquier rango, incluidas diferentes hojas si es necesario.

El siguiente ejemplo no se puede lograr con VLOOKUP .

INDEX / MATCH tiene el potencial de usar rangos de celdas más pequeños (aumentando así la eficiencia)

Considere el siguiente ejemplo. Se puede lograr con cualquier método.

Ambas fórmulas funcionan bien. Sin embargo, dado que la fórmula VLOOKUP contiene un rango mayor que la fórmula INDEX / MATCH , es innecesariamente volátil.

Si alguna celda en el rango B1:G4 cambia, la fórmula VLOOKUP debe recalcular (porque B1:G4 está dentro del rango A1:H4 ) aunque cambiar cualquier celda en B1:G4 no afectará el resultado de la fórmula. Esto no es un problema para INDEX / MATCH porque su fórmula no contiene el rango B1:G4 .

Usar VLOOKUP con col_index_number fijo es peligroso

El principal problema que veo al tener un número de índice de columna fijo es que no se actualizará como debería si se insertan columnas completas. Considere el siguiente ejemplo:

Esta fórmula funciona bien a menos que se inserte una columna dentro de la tabla de búsqueda. En ese caso, la fórmula buscará el valor a la izquierda de donde debería. Vea a continuación el resultado después de que se haya insertado una columna.

En realidad, esto se puede aliviar mediante el uso de la siguiente fórmula VLOOKUP :

= VLOOKUP("s",A1:H4,COLUMN(H1)-COLUMN(A1)+1,FALSE)

Ahora H1 se actualizará automáticamente a I1 si se inserta una columna, preservando así la referencia a la misma columna. Sin embargo, esto es completamente innecesario porque INDEX / MATCH puede lograr esto sin este problema con la fórmula a continuación.

= INDEX(H1:H4,MATCH("s",A1:A4,0))

Me doy cuenta de que este es un escenario poco probable, pero siempre me molestó que VLOOKUP busque de forma predeterminada en función de un índice de columna fijo que no se actualiza automáticamente si se insertan columnas. Para mí, solo parece hacer que la función VLOOKUP más frágil.

INDEX / MATCH también puede manejar índices de columna variables, pero una fórmula más larga

Si el número de índice de la columna en sí es dinámico, este es realmente el único caso cuando creo que VLOOKUP simplifica un poco las cosas, pero una vez más, la alternativa INDEX / MATCH es igual de buena, un poco más confusa. Ver ejemplos a continuación.

INDEX / MATCH es más eficiente para múltiples búsquedas

(gracias a @jeffreyweir)

Si se necesitan múltiples valores de búsqueda para un solo valor de coincidencia, es mucho más eficiente tener una celda auxiliar con el valor de coincidencia. De esta manera, la coincidencia solo debe calcularse una vez, en lugar de una para cada fórmula de búsqueda. Ver ejemplo a continuación.

Este valor de coincidencia se puede usar para devolver los valores de búsqueda apropiados. Vea el ejemplo a continuación, (la fórmula se ha arrastrado hacia la derecha).

Esta "división" manual del valor de coincidencia y los valores de índice no es una opción con VLOOKUP ya que el valor de coincidencia es una variable "interna" en VLOOKUP y no se puede acceder.

INDEX / MATCH puede buscar un rango, permitiendo otra operación

Digamos, por ejemplo, que desea encontrar un valor máximo en una columna en función del nombre de la columna.

Primero puede usar MATCH para encontrar la columna apropiada, luego INDEX para devolver el rango de esa columna completa, luego use MAX para encontrar el máximo de ese rango.

Vea el ejemplo a continuación, la fórmula en H4 busca el valor máximo del nombre de columna especificado en la celda G4 . Esto no se puede lograr usando VLOOKUP solo.

En resumen

VLOOKUP es, en el mejor de los casos, tan bueno como INDEX / MATCH y es cierto que es menos confuso en algunas situaciones. Y en el peor de los casos, VLOOKUP es mucho más inseguro y volátil que INDEX / MATCH .

También vale la pena señalar que si desea buscar un rango en lugar de un solo valor, se debe usar INDEX / MATCH . VLOOKUP no se puede usar para buscar un rango.

Por estas razones, generalmente prefiero INDEX / MATCH en prácticamente todas las situaciones.

Entiendo cómo usar cada método: VLOOKUP (o HLOOKUP ) vs. INDEX / MATCH .

Estoy buscando diferencias entre ellos no en términos de preferencia personal, sino principalmente en las siguientes áreas:

  1. ¿Hay algo que un método puede hacer que el otro no?

  2. ¿Cuál es más eficiente en general (o depende de la situación)?

  3. Cualquier otra ventaja / desventaja de usar un método versus el otro

NOTA : Estoy respondiendo mi propia pregunta aquí, pero estoy buscando ver si alguien más tiene otras ideas en las que no haya pensado.