miércoles, 10 de junio de 2020

EXCEL: INDICE con matriz variable

Excel formula: INDEX with variable array

Fórmula genérica

=INDICE(ELEGIR(number,array1,array2),COINCIDIR(value,range,0))

Explicación

Para configurar una fórmula INDICE y COINCIDIR donde la matriz proporcionada a INDICE es variable, puede usar la función ELEGIR. En el ejemplo que se muestra, la fórmula en I5, copiada, es:

=INDICE(ELEGIR(H5,Table1,Table2),COINCIDIR(G5,Table1[Model],0),2)

Con Table1 y Table2 como se indica en la captura de pantalla.

Cómo funciona esta fórmula

En el fondo, esta es una función INDICE y COINCIDIR normal:

=INDICE(array,COINCIDIR(value,range,0))

Donde la función COINCIDIR se usa para encontrar la fila correcta para regresar de la matriz, y la función INDICE devuelve el valor en esa matriz.

Sin embargo, en este caso queremos hacer que la matriz sea variable, de modo que el rango dado a INDICE se pueda cambiar sobre la marcha. Hacemos esto con la función ELEGIR:

ELEGIR(H5,Table1,Table2)

La función ELEGIR devuelve un valor de una lista usando una posición o índice dado. El valor puede ser una constante, una referencia de celda, una matriz o un rango. En el ejemplo, el índice numérico se proporciona en la columna H. Cuando el número de índice es 1, usamos Tabla1. Cuando el índice es 2, alimentamos la Tabla2 a INDICE:

ELEGIR(1,Table1,Table2) // returns Table1
ELEGIR(2,Table1,Table2) // returns Table2

Nota: los rangos proporcionados a ELEGIR no necesitan ser tablas o rangos con nombre.

En I5, el número en la columna H es 1, por lo que ELEGIR devuelve Table1, y la fórmula resuelve:

=INDICE(Table1,COINCIDIR("A",Table1[Model],0),2)

La función COINCIDIR devuelve la posición de "A" en la Tabla 1, que es 1, e INDICE devuelve el valor en la fila 1, columna 2 de la Tabla 1, que es $ 20.00

=INDICE(Table1,1,2) // returns $20.00

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT