Veamos la función INDICE.
Devuelve el valor de un elemento de una tabla o matriz, indicándoles el número de fila y columna.
Sintaxis
INDICE(matriz; núm_fila; [núm_columna])
Matriz. Obligatorio. Es el rango de celdas donde vamos a dirigirnos.
Si matriz contiene solo una fila o columna, el argumento num_columna es opcional, si no se especifica toma el valor 1 como predeterminado.
Num_fila. Obligatorio, indica la fila donde nos vamos a posicionar si num_fila se omite, num_columna es necesario.
Num_columna. Opcional. indica la columna de la matriz desde la cual devolverá un valor.
Si usamos los argumentos num_fila y num_columna, INDICE devuelve el valor de la celda en la intersección de la fila y columna especificada.
Por supuesto, siempre num_fila y num_columna deben apuntar a una celda que este dentro de la matriz; de lo contrario, INDICE devuelve un #REF! .
Veamos algunos ejemplos.
Teniendo el siguiente modelo de datos.
Si en una celda, escribo la función INDICE, y, le digo que se vaya a la fila 2, y, columna 2, me devuelve Carrefour, hay que tener en cuenta de que si partimos, por ejemplo, de la celda A1, y le decimos que baje dos filas, en la celda donde estamos, es decir, en A1, cuenta como la primera fila a moverse, igual para las columnas.
=INDICE(B7:G15;2;2)
Pero, queremos algo más complicado, es decir, elegir una provincia, y, un encabezado, que puede ser centro comercial, producto, cantidad, precio, o, total, y que me devuelva el valor.
Para ello, tendremos que usar de nuevo la función COINCIDIR pero por dos veces, una para saber la fila y otra para saber la columna.
Vamos a crear dos validaciones de datos, una para elegir una provincia y otra para elegir un encabezado.
Una vez que hemos creado las dos validaciones, elegimos una provincia y un encabezado.
Vamos a rellenar la celda de valor, en este caso, debe de devolvernos la cantidad para Badajoz.
Necesitaría saber que fila ocupa la provincia que hemos seleccionamos, y también, que columna ocupa el encabezado seleccionado.
Entonces, usemos el primer coincidir para calcular la fila de la provincia seleccionada, para ello, uso la siguiente sintaxis:
=COINCIDIR(B3;B7:B15;0)
Me devuelve la fila cuatro.
Ahora, vamos a hacer lo mismo, pero para calcular la columna, de la siguiente manera:
=COINCIDIR(C3;B6:G6;0)
Me devuelve la columna 4.
Es decir, que ya tengo el argumento numero_de_fila, y, numero_de_columna, por lo que la función INDICE quedaría.
=INDICE(B7:G15;COINCIDIR(B3;B7:B15;0);COINCIDIR(C3;B6:G6;0))
Ahora, lo que queremos es saber en qué provincias aparece el producto que indiquemos.
Por ejemplo, vemos ordenadores, pues, vamos a ver en que provincias ha sido vendido dicho producto.
Lo vamos a hacer de forma matricial, esto quiere decir que la función que vamos a usar va a devolver más de un resultado.
Bien, vamos a preguntar que si en la columna de productos, hay algún valor igual al seleccionado, en este caso, ordenadores, me devuelva su posición.
Vamos a hacer uso del condicional SI, de forma matricial, por lo que en el argumento prueba lógica, en vez de comparar una celda, debemos de seleccionar toda la columna, donde vamos a preguntar que si en la columna de productos hay algún valor igual, en este caso, a ordenadores, pues que nos devuelva su posición, en caso contrario, que ponga un texto en blanco.
Para saber su posición, vamos a hacer uso de la función FILA, esta función también, pertenece a la categoría de funciones de búsqueda y referencia.
El único argumento de esta función es una referencia a una celda, o, podemos poner un argumento nulo, en ese caso, nos devuelve la fila de la celda activa.
Pues, la función FILA; va a ser el argumento valor si verdadero del condicional SI, donde como argumento del FILA, seleccionamos el rango de productos, quedando de la siguiente manera:
=SI(D7:D15=B17;FILA(D7:D15);"")
Como resultado, tenemos una matriz desbordada con la posición donde se encuentra la fila del producto ordenadores, y, un texto en blanco donde no hay coincidencia.
Pues, ya tenemos el ejercicio hecho, este condicional SI es el argumento número de fila de la función INDICE.
El argumento número de columna, lo podemos omitir, y, por defecto, tomara el valor 1, en este caso, como solo tenemos una columna, lo voy a omitir.
=INDICE(B:B;SI(D7:D15=B17;FILA(D7:D15);""))
Como resultado vemos las provincias de dicho producto, pero donde no hay coincidencia vemos que aparece error, este error lo solventamos con la función SI.ERROR.
=SI.ERROR(INDICE(B:B;SI(D7:D15=B17;FILA(D7:D15);""));"")
Pero, queremos que las provincias aparezcan en la parte superior.
Como es una matriz desbordada, no podemos ordenar de menor a mayor desde la pestaña datos, dentro del grupo ordenar y filtrar.
Pero, tenemos una función matricial, que veremos más adelante, que se llama ORDENAR, que nos permite ordenar.
Pues la ponemos después del signo igual.
=ORDENAR(SI.ERROR(INDICE(B:B;SI(D7:D15=B17;FILA(D7:D15);""));""))
Pero, vemos que aparecen dichas provincias en la parte inferior, y, queremos que aparezca en la parte superior.
Para ello, borramos el cierre de paréntesis de la función ORDENAR, ponemos punto y coma, y, de nuevo punto y coma para decidir el tipo de ordenación, donde elegimos descendente, y, ya lo tenemos.
=ORDENAR(SI.ERROR(INDICE(B:B;SI(D7:D15=B17;FILA(D7:D15);"");1);"");;-1)
Comments