Que es y como usar la función INDICE en Google Sheets

Función INDICE en Google Sheets
— by

En este artículo vemos la función INDICE, para qué sirve, con que otras funciones se la lleva muy bien y algunos ejemplos de uso.

Aquí tienen la explicación también en video:

¿Qué es la función INDICE?

La función INDICE es básicamente un buscador de direcciones. Yo le doy una dirección y Sheets me dice lo que hay ahí.

Pero primero debemos entender el concepto de arreglos:

Arreglos unidimensionales

Un arreglo unidimensional es básicamente una lista de valores o de objetos.

En el caso de Sheets, un arreglo unidimensional sería un rango de solo una fila o una sola columna.

Un ejemplo de arreglo es el siguiente listado de frutas:

{manzana,pera,mango,banano, piña}

En el caso de Sheets o Excel, el mismo arreglo se vería así:

O así

Olvidémonos de Sheets un momento. En cualquier lenguaje de programación, ¿cómo «traigo» cualquiera de los elementos del arreglo?

Hay varias formas, pero lo importante aquí es saber que necesito la posición del elemento

Por ejemplo si quiero «traer» «banano», necesito saber en qué posición de mi arreglo está. En este ejemplo, «banano» está en la posición 4.

Así mismo, «pera» está en la posición 2 y piña en la posición 5.

Lo que hace Índice entonces es que me trae el valor del arreglo con la posición que yo le dé.

=INDICE({manzana,pera,mango,banano, piña};4)

Me traería banano, al igual que en los ejemplos anteriores, la formula sería

=INDICE(A1:A5;4)

o

=INDICE(A9:E9;4)

Todas me darían el mismo resultado: «banano»

Arreglos bidimensionales

Hasta ahora todo muy fácil y obvio, y hasta podriamos no verle la utilidad dentro de un software de hojas de cálculo como Sheets.

Ya llegaremos ahí.

Por ahora extendamos el uso de INDICE a un arreglo bidimensional.

Supongamos la siguiente tabla:

Digamos que quiero buscar las calorías del banano.

En el primer ejemplo era más fácil porque solo necesitaba una posición: la 4

Pero ahora estamos hablando de filas y columnas, entonces necesito dos coordenadas, la de las filas y las de las columnas.

Mi INDICE ahora se vería así

=INDICE(A1:E6;5;2)

Donde ahora pongo todo mi rango, después la fila, y por último la columna.

Obviamente, el rango de la fila y de la columna podrían ser referencias, como en este caso

Ejemplos de uso

Sigue sin parecernos muy interesante, ¿verdad? La verdad es que indice funciona mejor en conjunto con otras funciones.

Por eso es más fácil entenderla con ejemplos

INDICE + COINCIDIR

Este es el ejemplo más usado y más conocido de todos.

Es un excelente reemplazo para BUSCARV.

Si sabemos que INDICE me trae el valor de una intersección entre una fila y una columna, que pasaría si yo puedo buscar dinámicamente el valor de la fila y/o de la columna.

Por ejemplo, en el caso de arriba, sería más interesante, en vez de yo poner el número de fila y de columna, más bien poner la fruta y la propiedad, y de alguna manera que Sheets me identifique en que fila está la fila y en que columna la propiedad.

Esto se logra con la función COINCIDIR.

Por ejemplo la siguiente fórmula:

=COINCIDIR(«banano»;A1:A6;0)

Me traerá la posición de banano en la columna A.

O sea que le podría pasar este resultado a INDICE, para la fila.

Y por otro lado, la siguiente función

=COINCIDIR(«CALORIAS»;A1:E1;0)

Me traería el número de columna donde están las calorías.

Y esta la puedo reemplazar por mi argumento de columna en INDICE.

La formula mejorada entonces quedaría así

=INDICE(A1:E6;COINCIDIR(B8;A1:A6;0);COINCIDIR(B9;A1:E1;0))

Y el ejemplo completo:

Entonces si cambio «banano» por «pera», y «CALORIAS» por «PROTEINAS», me traerá el valor correspondiente.

INDICE + CONTARA

CONTARA es una forma muy fácil de saber cuantos registros o datos tiene una lista o una tabla.

Por tanto, si ingreso una COUNTA dentro de un INDICE, me va a traer el último dato de un rango. Veamos el ejemplo:

La fórmula sería:

=INDICE(A1:A;CONTARA(A1:A))

INDICE + SPLIT

Esta es una forma, muy útil y sencilla para traer la primera, segunda o última palabra de un texto

SPLIT es una función que separa un texto por un delimitador que le demos.

Piensen en la opción «Separar texto en columnas» pero en una función.

Entonces si tengo el texto «Juan,Carlos,Maria»

Uso primero SPLIT para separarlo y me resultaría en el siguiente arreglo:

Pero como solo quiero la primera palabra, y ya tengo mi arreglo, y ya sabemos que con INDICE podemos traer la primera posición de mi arreglo, así

=INDICE(SPLIT(A2;»,»);1)

Fíjense que a diferencia de los otros ejemplos, la función anidada no va en el argumento del índice, sino en el del rango.

INDICE + INDICE

Por último, veremos como usar dos indices dentro de un arreglo para extraer un trozo del rango que queramos.

Por ejemplo podemos traer los primeros 5 datos de un rango, con la formula

=INDICE(A1:A100;1):INDICE(A1:A100;5)

O del dato 5 al 10

=INDICE(A1:A100;5):INDICE(A1:A100;10)

Y si queremos los últimos 5, juntamos este método con el de CONTARA que ya vimos

=INDICE(A1:A7;CONTARA(A:A)-5):INDICE(A1:A7;CONTARA(A:A))

Conclusión

Como pueden ver INDICE es una poco usada, pero muy útil función que funciona mejor en conjunto con otras funciones que ya conocemos.

Suscríbete para acceder al curso «Descubriendo el poder de Google Sheets» y empezar tu camino a la maestría de Sheets, Forms y Apps Script

Boletín

Nuestras últimas noticias en tu correo electrónico

Respuestas

  1. Avatar de pablo

    Hola. como estás? Me podrías ayudar a resolver algo que no puedo? Tengo una planilla de ENTRADAS y otra de SALIDAS. Quiero en una tercera que me aparezcan las filas que no tienen salida, para identificar el lote de entrada. es decir tengo datos de entrada, cuando hago salidas mequeda un inventario que quiero saber cual es, sin totales, cada fila o entrada que no dí salida, para controlar stock. se entiende? gracias

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola Pablo

      Pudiste solucionar?

  2. Avatar de Bruno
    Bruno

    Hola Juán buenos días

    Te felicito primero por la página (a mi entender, de los pocos se entiende tan claro con los ejemplos 🙂

    Te hago una consulta, estoy armando en una hoja información desde 2 fuentes. Una fuente que está en el mismo libro en otra pestaña (uso «querry» para traer la información que necesito) y la otra fuente de informacion la quiero traer de otro libro y pensaba usar «Importrange» pero aparece un cartel dice «no tienes permiso para acceder a esta hoja MAS INFORMACION», cuanso en vez de «MAS INFORMAICON» debería aparecer «PERMITIR ACCESO» para solicitar la autorización pero no descubro cómo. ¿como puedo hacer? (NOTA: ambos archivos estan en google sheet y tengo acceso a ambos desde mi cuenta)

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola Bruno

      Tienes acceso de edición a los 2 archivos?

      Saludos!

      1. Avatar de Bruno
        Bruno

        Hola Juan gracias por tu Respuesta

        Al parecer hay algo bloqueando pero no se donde ver si es así o no.
        Probé la función trayendo información desde una tercer fuente de datos para probar y funcionó. El tema está en que hay algo bloqueado el archivo de origen de la base de datos y no se donde revisarlo si es así (menos como sacarlo) si se trata de bloqueo de un intervalo de la hoja, la hoja entera o todo el archivo.

  3. Avatar de Michel
    Michel

    Hola Juan, muy buenas las explicaciones !

    Tengo una consulta, necesito a un resultado de rango de un INDICE anexar un otro texto o símbolo por ej. si obtengo :

    Casa
    Auto
    Perro

    que me muestre

    *Casa
    *Auto
    *Perro

    algo así como unir el resultado a otra cadena .. es posible ?

    Muchas gracias !

    1. Avatar de Michel
      Michel

      Solucionado con ArrayFormula

      Muchas gracias !

      1. Avatar de jsguzmanb
        jsguzmanb

        Hola Michel

        Buena solución!

        Un gran saludo

  4. Avatar de edgardo
    edgardo

    Quiero buscar datos de dos paginas, de una me funciona bien, mi formula es:
    =SI.ERROR(INDICE(importrange(«direccion»;»D:D»);COINCIDIR(D183;IMPORTRANGE(«direccion»;»E:E»);0));INDICE(importrange(«direccion»;»D:D»);COINCIDIR(D183;IMPORTRANGE(«direccion»;»E:E»);0)))
    Cambie la direccion de mi planilla por la palabra direccion para que se entienda mejor la formula.

    Ahora, por lo que veo en este tutorial la formula deberia de ser algo mas parecido a:
    =INDICE(importrange(«direccion»;»D:D»);COINCIDIR(D185;IMPORTRANGE(«direccion»;»E:E»))):INDICE(importrange(«direccion»;»D:D»);COINCIDIR(D185;IMPORTRANGE(«direccion»;»E:E»)))

    Pero de esta ultima manera me da error. Mi meta es poniendo el valor del documento de un cliente, que me traiga el nombre. el problema que los clientes estan divididos en 6 hojas distintas repartidas en 5 libros de drive. De momento no puedo lograrlo siquiera con dos hojas en un mismo libro, que seria lo básico para escalar al resto.

    Podrias orientarme por favor en que me estoy equivocando?
    Desde ya gracias por la información que compartiste.

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola Edgardo

      Mil gracias por escribir

      En la ultima te falto el si.error, porque de resto es lo mismo

      Para lograr lo que tu dices, tienes que consolidar primero las 6 hojas y sobre esa si haces el indice.

      Aqui te dejo un video de consolidar que te puede dar mas ideas

      https://youtu.be/Qhky_Q33mp8

      Un gran saludo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Share This