Tabla de contenido
En este tutorial, encontrará una serie de ejemplos de fórmulas que demuestran los usos más eficientes de INDEX en Excel.
De todas las funciones de Excel cuya potencia suele subestimarse e infrautilizarse, INDEX se situaría sin duda entre las 10 primeras. Mientras tanto, esta función es inteligente, flexible y versátil.
Entonces, ¿qué es la función ÍNDICE en Excel? Esencialmente, una fórmula ÍNDICE devuelve una referencia de celda dentro de una matriz o rango determinado. En otras palabras, se utiliza ÍNDICE cuando se conoce (o se puede calcular) la posición de un elemento en un rango y se desea obtener el valor real de dicho elemento.
Esto puede sonar un poco trivial, pero una vez que te des cuenta del verdadero potencial de la función ÍNDICE, podría suponer cambios cruciales en la forma de calcular, analizar y presentar los datos en tus hojas de cálculo.
Función INDEX de Excel - sintaxis y usos básicos
Existen dos versiones de la función ÍNDICE en Excel: la forma de matriz y la forma de referencia. Ambas formas pueden utilizarse en todas las versiones de Microsoft Excel 365 - 2003.
Forma de matriz INDEX
La forma de matriz INDEX devuelve el valor de un determinado elemento de un rango o matriz en función de los números de fila y columna que especifiques.
INDEX(matriz, fila_num, [columna_num])- matriz - es un rango de celdas, un rango con nombre o una tabla.
- número_de_fila - es el número de fila de la matriz a partir del cual se devuelve un valor. Si se omite row_num, se requiere column_num.
- columna_num - es el número de columna a partir del cual se devuelve un valor. Si se omite column_num, se requiere row_num.
Por ejemplo, la fórmula =INDEX(A1:D6, 4, 3)
devuelve el valor en la intersección de la 4ª fila y la 3ª columna del rango A1:D6, que es el valor de la celda C4.
Para hacerse una idea de cómo funciona la fórmula INDEX con datos reales, eche un vistazo al siguiente ejemplo:
En lugar de introducir los números de fila y columna en la fórmula, puede proporcionar las referencias de celda para obtener una fórmula más universal: =INDEX($B$2:$D$6, G2, G1)
Así, esta fórmula INDEX devuelve el número de artículos exactamente en la intersección del número de producto especificado en G2 (row_num) y el número de semana introducido en la celda G1 (column_num).
Consejo. El uso de referencias absolutas ($B$2:$D$6) en lugar de referencias relativas (B2:D6) en el argumento del rango facilita la copia de la fórmula a otras celdas. Como alternativa, puede convertir un rango en una tabla ( Ctrl + T ) y referirse a ella por el nombre de la tabla.
Formulario de matriz INDEX: aspectos a tener en cuenta
- Si el argumento de la matriz consta de una sola fila o columna, puede especificar o no el argumento correspondiente a row_num o column_num.
- Si el argumento array incluye más de una fila y row_num se omite o se establece en 0, la función INDEX devuelve un array de la columna completa. De forma similar, si array incluye más de una columna y el argumento column_num se omite o se establece en 0, la fórmula INDEX devuelve la fila completa. A continuación se muestra un ejemplo de fórmula que demuestra este comportamiento.
- ¡Los argumentos row_num y column_num deben referirse a una celda dentro de la matriz; de lo contrario, la fórmula INDEX devolverá el error #REF!
Formulario de referencia INDEX
La forma de referencia de la función ÍNDICE de Excel devuelve la referencia de la celda en la intersección de la fila y la columna especificadas.
INDEX(referencia, fila_num, [columna_num], [área_num] )- referencia - es uno o varios rangos.
Si introduce varios rangos, sepárelos mediante comas y encierre el argumento de referencia entre paréntesis, por ejemplo (A1:B5, D1:F5).
Si cada rango en referencia contiene sólo una fila o columna, el argumento row_num o column_num correspondiente es opcional.
- número_de_fila - el número de fila en el rango del que devolver una referencia de celda, es similar a la forma array.
- columna_num - el número de columna a partir del cual devolver una referencia de celda, también funciona de forma similar a la forma array.
- area_num - un parámetro opcional que especifica qué intervalo del argumento de referencia debe utilizarse. Si se omite, la fórmula INDEX devolverá el resultado del primer intervalo enumerado en referencia.
Por ejemplo, la fórmula =INDEX((A2:D3, A5:D7), 3, 4, 2)
devuelve el valor de la celda D7, que se encuentra en la intersección de la 3ª fila y la 4ª columna de la segunda área (A5:D7).
Formulario de referencia INDEX - aspectos a tener en cuenta
- Si el argumento row_num o column_num es cero (0), una fórmula INDEX devuelve la referencia de toda la columna o fila, respectivamente.
- Si se omiten tanto row_num como column_num, la función INDEX devuelve el área especificada en el argumento area_num.
- ¡Todos los argumentos _num (row_num, column_num y area_num) deben referirse a una celda dentro de la referencia; de lo contrario, la fórmula INDEX devolverá el error #REF!
Las dos fórmulas INDEX que hemos visto hasta ahora son muy sencillas y sólo ilustran el concepto. Es probable que sus fórmulas reales sean mucho más complejas, así que vamos a explorar algunos de los usos más eficientes de INDEX en Excel.
Cómo utilizar la función ÍNDICE en Excel - ejemplos de fórmulas
Quizá no haya muchos usos prácticos de Excel INDEX por sí solo, pero en combinación con otras funciones como MATCH o COUNTA, puede dar lugar a fórmulas muy potentes.
Fuente de datos
Para todas nuestras fórmulas INDEX (excepto para la última), utilizaremos los datos siguientes. Para mayor comodidad, se organizan en una tabla denominada SourceData .
El uso de tablas o rangos con nombre puede hacer que las fórmulas sean un poco más largas, pero también las hace significativamente más flexibles y más legibles. Para ajustar cualquier fórmula INDEX de tus hojas de cálculo, sólo tienes que modificar un único nombre, y esto compensa totalmente una mayor longitud de la fórmula.
Por supuesto, nada le impide utilizar rangos habituales si lo desea. En este caso, basta con sustituir el nombre de la tabla por SourceData con la referencia de rango adecuada.
1. Obtener el enésimo elemento de la lista
Este es el uso básico de la función INDEX y la fórmula más sencilla de realizar. Para obtener un determinado elemento de la lista, basta con escribir =INDEX(rango, n)
donde gama es un rango de celdas o un rango con nombre, y n es la posición del elemento que desea obtener.
Cuando trabaje con tablas de Excel, puede seleccionar la columna utilizando el ratón y Excel sacará el nombre de la columna junto con el nombre de la tabla en la fórmula:
Para obtener el valor de la celda que se encuentra en la intersección de una fila y una columna dadas, se utiliza el mismo método con la única diferencia de que se especifican ambas cosas: el número de fila y el número de columna. De hecho, ya has visto una fórmula de este tipo en acción cuando hablamos del formulario de matriz INDEX.
Y aquí tenemos otro ejemplo. En nuestra tabla de ejemplo, para encontrar el 2º planeta más grande del sistema solar, se ordena la tabla por el Diámetro y utilice la siguiente fórmula INDEX:
=INDEX(DatosFuente, 2, 3)
Matriz
es el nombre de la tabla, o una referencia de rango, SourceData en este ejemplo.Número_de_fila
es 2 porque está buscando el segundo elemento de la lista, que está en el 2ºNúmero_columna
es 3 porque Diámetro es la 3ª columna de la tabla.
Si desea devolver el nombre del planeta en lugar del diámetro, cambie column_num a 1. Y, naturalmente, puede utilizar una referencia de celda en los argumentos row_num y/o column_num para que su fórmula sea más versátil, como se demuestra en la captura de pantalla siguiente:
2. Obtener todos los valores de una fila o columna
Además de recuperar una única celda, la función INDEX es capaz de devolver una matriz de valores de la celda toda la fila o columna Para obtener todos los valores de una columna determinada, debe omitir el argumento row_num o ponerlo a 0. Del mismo modo, para obtener toda la fila, debe pasar un valor vacío o 0 en column_num.
Estas fórmulas ÍNDICE apenas pueden utilizarse por sí solas, ya que Excel es incapaz de encajar la matriz de valores devuelta por la fórmula en una sola celda, y en su lugar obtendrías el error #¡VALOR! Sin embargo, si utilizas ÍNDICE junto con otras funciones, como SUMA o PROMEDIO, obtendrás resultados asombrosos.
Por ejemplo, puedes utilizar la siguiente fórmula para calcular la temperatura media de los planetas del Sistema Solar:
=AVERAGE(INDEX(SourceData, , 4))
En la fórmula anterior, el argumento column_num es 4 porque Temperatura en la 4ª columna de nuestra tabla. Se omite el parámetro row_num.
De forma similar, puede encontrar las temperaturas mínimas y máximas:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Y calcula la masa total del planeta (La masa es la 2ª columna de la tabla):
=SUMA(INDEX(DatosFuente, , 2))
Desde un punto de vista práctico, la función INDEX de la fórmula anterior es superflua. Basta con escribir =PROMEDIO(rango)
o =SUMA(rango)
y obtener los mismos resultados.
Al trabajar con datos reales, esta función puede resultar útil como parte de fórmulas más complejas que utilice para el análisis de datos.
3. Uso de INDEX con otras funciones (SUM, AVERAGE, MAX, MIN)
De los ejemplos anteriores, podría tener la impresión de que una fórmula INDEX devuelve valores, pero la realidad es que devuelve un referencia a la celda que contiene el valor. Y este ejemplo demuestra la verdadera naturaleza de la función ÍNDICE de Excel.
Dado que el resultado de una fórmula INDEX es una referencia, podemos utilizarla dentro de otras funciones para hacer un rango dinámico ¿Suena confuso? La siguiente fórmula lo aclarará todo.
Supongamos que tenemos una fórmula =MEDIA(A1:A10)
que devuelve una media de los valores de las celdas A1:A10. En lugar de escribir el rango directamente en la fórmula, puedes sustituir A1 o A10, o ambos, por funciones INDEX, de esta forma
=MEDIA(A1 : INDEX(A1:A20,10))
Ambas fórmulas darán el mismo resultado porque la función INDEX también devuelve una referencia a la celda A10 (row_num se establece en 10, col_num se omite). La diferencia es que el rango es la fórmula AVERAGE / INDEX es dinámico, y una vez que cambie el argumento row_num en INDEX, el rango procesado por la función AVERAGE cambiará y la fórmula devolverá un resultado diferente.
Aparentemente, el recorrido de la fórmula INDEX parece excesivamente complicado, pero tiene aplicaciones prácticas, como demuestran los siguientes ejemplos.
Ejemplo 1. Calcular la media de los N primeros elementos de la lista
Digamos que quieres saber el diámetro medio de los N planetas más grandes de nuestro sistema. Entonces, ordenas la tabla por Diámetro de mayor a menor, y utilice la siguiente fórmula Promedio / Índice:
=AVERAGE(C5 : INDEX(DatosFuente[Diámetro], B1))
Ejemplo 2. Suma de elementos entre los dos elementos especificados
En caso de que desee definir los elementos de límite superior e inferior en su fórmula, sólo tiene que emplear dos funciones INDEX para devolver el primer y el último elemento que desee.
Por ejemplo, la siguiente fórmula devuelve la suma de los valores de los campos Diámetro entre los dos elementos especificados en las celdas B1 y B2:
=SUMA(INDEX(DatosFuente[Diámetro],B1) : INDEX(DatosFuente[Diámetro], B2))
4. Fórmula INDEX para crear rangos dinámicos y listas desplegables
Como suele ocurrir, cuando uno empieza a organizar los datos en una hoja de cálculo, es posible que no sepa cuántas entradas tendrá finalmente. No es el caso de nuestra tabla de planetas, que parece estar completa, pero quién sabe...
De todas formas, si tienes un número cambiante de elementos en una columna determinada, digamos de A1 a A n , es posible que desee crear un rango con nombre dinámico que incluya todas las celdas con datos. En ese caso, desea que el rango se ajuste automáticamente a medida que agrega nuevos elementos o elimina algunos de los existentes. Por ejemplo, si actualmente tiene 10 elementos, su rango con nombre es A1:A10. Si agrega una nueva entrada, el rango con nombre se expande automáticamente a A1:A11, y si cambia de opinión y elimina esos datos recién agregados,el rango vuelve automáticamente a A1:A10.
La principal ventaja de este enfoque es que no tiene que actualizar constantemente todas las fórmulas del libro de trabajo para asegurarse de que se refieren a rangos correctos.
Una forma de definir un rango dinámico es utilizando la función OFFSET de Excel:
=OFFSET(Nombre_hoja!$A$1, 0, 0, COUNTA(Nombre_hoja!$A:$A), 1)
Otra posible solución es utilizar Excel INDEX junto con COUNTA:
=Nombre_hoja!$A$1:INDEX(Nombre_hoja!$A:$A, COUNTA(Nombre_hoja!$A:$A))
En ambas fórmulas, A1 es la celda que contiene el primer elemento de la lista y el rango dinámico producido por ambas fórmulas será idéntico.
La diferencia está en las aproximaciones. Mientras que la función OFFSET se desplaza del punto de partida un determinado número de filas y/o columnas, INDEX encuentra una celda en la intersección de una fila y columna concretas. La función COUNTA, utilizada en ambas fórmulas, obtiene el número de celdas no vacías de la columna de interés.
En este ejemplo, hay 9 celdas no en blanco en la columna A, por lo que COUNTA devuelve 9. En consecuencia, INDEX devuelve $A$9, que es la última celda utilizada en la columna A (normalmente INDEX devuelve un valor, pero en esta fórmula, el operador de referencia (:) le obliga a devolver una referencia). Y como $A$1 es nuestro punto de partida, el resultado final de la fórmula es el rango $A$1:$A$9.
La siguiente captura de pantalla muestra cómo utilizar esta fórmula de índice para crear una lista desplegable dinámica.
Consejo. La forma más sencilla de crear una lista desplegable que se actualice dinámicamente es crear una lista con nombre basada en una tabla. En este caso, no necesitará fórmulas complejas, ya que las tablas de Excel son rangos dinámicos per se.
También puede utilizar la función ÍNDICE para crear listas desplegables dependientes y en el siguiente tutorial se explican los pasos: Cómo hacer una lista desplegable en cascada en Excel.
5. Potentes Vlookups con INDEX / MATCH
Si alguna vez ha intentado utilizar la función VLOOKUP de Excel, conocerá perfectamente sus numerosas limitaciones, como la imposibilidad de extraer valores de columnas situadas a la izquierda de la columna de búsqueda o el límite de 255 caracteres para un valor de búsqueda.
El enlace INDEX / MATCH es superior a VLOOKUP en muchos aspectos:
- No hay problemas con los vlookups izquierdos.
- No hay límite para el tamaño del valor de búsqueda.
- No se requiere ordenación (VLOOKUP con coincidencia aproximada sí requiere ordenar la columna de búsqueda en orden ascendente).
- Puede insertar y eliminar columnas en una tabla sin actualizar todas las fórmulas asociadas.
- Y por último, pero no menos importante, INDEX / MATCH no ralentiza su Excel como lo hacen múltiples Vlookups.
Utilice INDEX / MATCH de la siguiente manera:
=INDEX ( para devolver un valor de , (MATCH ( valor de búsqueda , columna de búsqueda , 0))Por ejemplo, si volteamos nuestra tabla de origen de forma que Nombre del planeta se convierte en la columna situada más a la derecha, la fórmula INDEX / MATCH sigue obteniendo un valor coincidente de la columna de la izquierda sin problemas.
Para más consejos y ejemplos de fórmulas, consulte el tutorial de Excel INDEX / MATCH.
6. Fórmula Excel INDEX para obtener 1 rango de una lista de rangos
Otro uso inteligente y potente de la función ÍNDICE en Excel es la posibilidad de obtener un rango de una lista de rangos.
Supongamos que tiene varias listas con un número diferente de elementos en cada una. Lo crea o no, puede calcular la media o sumar los valores de cualquier rango seleccionado con una sola fórmula.
En primer lugar, cree un intervalo con nombre para cada lista; que sea PlanetasD y LunasD en este ejemplo:
Espero que la imagen anterior explique el razonamiento que hay detrás de los nombres de las gamas : ) BTW, el Lunas La tabla no está ni mucho menos completa, hay 176 lunas naturales conocidas en nuestro Sistema Solar, sólo Júpiter tiene 63 en la actualidad, y sumando. Para este ejemplo, he elegido al azar 11, bueno... quizá no del todo al azar, lunas con los nombres más bonitos : )
Disculpen la digresión, volvamos a nuestra fórmula INDEX. Suponiendo que PlanetasD es su rango 1 y LunasD es el rango 2, y la celda B1 es donde pusiste el número de rango, puedes utilizar la siguiente fórmula de Índice para calcular la media de los valores del rango con nombre seleccionado:
= PROMEDIO(ÍNDICE((PlanetasD, LunasD), , , B1))
Tenga en cuenta que ahora estamos utilizando la forma Referencia de la función INDEX, y el número del último argumento (area_num) indica a la fórmula qué rango debe elegir.
En la siguiente captura de pantalla, area_num (celda B1) se establece en 2, por lo que la fórmula calcula el diámetro medio de Lunas porque la gama LunasD es el segundo en el argumento de referencia.
Si trabaja con varias listas y no quiere molestarse en recordar los números asociados, puede emplear una función IF anidada para que lo haga por usted:
=AVERAGE(INDEX((PlanetasD, LunasD), , , IF(B1="planetas", 1, IF(B1="lunas", 2))))
En la función IF, usted utiliza algunos nombres de lista simples y fáciles de recordar que desea que sus usuarios escriban en la celda B1 en lugar de números. Tenga esto en cuenta, para que la fórmula funcione correctamente, el texto en B1 debe ser exactamente el mismo (insensible a mayúsculas y minúsculas) que en los parámetros del IF, de lo contrario su fórmula Index arrojará el error #VALOR.
Para que la fórmula sea aún más fácil de usar, puede utilizar la Validación de datos para crear una lista desplegable con nombres predefinidos para evitar errores ortográficos y erratas:
Por último, para que su fórmula INDEX sea absolutamente perfecta, puede encerrarla en la función IFERROR que pedirá al usuario que elija un elemento de la lista desplegable si aún no se ha realizado ninguna selección:
=IFERROR(AVERAGE(INDEX((PlanetasD, LunasD), , , IF(B1="planeta", 1, IF(B1="luna", 2)))), "¡Por favor, seleccione la lista!")
Así es como se utilizan las fórmulas ÍNDICE en Excel. Espero que estos ejemplos te hayan mostrado una forma de aprovechar el potencial de la función ÍNDICE en tus hojas de cálculo ¡Gracias por leer!