Multiplicar por coeficientes de escenario con INDICE, COINCIDIRX y SI.CONJUNTO

Un miembro de la comunidad tiene una tabla de conceptos con cantidades, precios y un campo "Escenario" (1, 2 o 3). Aparte, tiene una tabla de coeficientes donde cada fila es un concepto y cada columna un escenario. Necesita multiplicar cantidad × precio × coeficiente correspondiente al escenario indicado, buscando el concepto correcto en la tabla de coeficientes. Llevaba días dándole vueltas sin conseguir cerrar la fórmula.

Miki propone una solución con LET, SI.CONJUNTO y ELEGIRFILAS:

``
=LET(
a;F6:H6; b;F10:H10; c;F14:H14; d;F18:H18;
i;C8:C15; concepto;A8:A15; total;D8:D15; escenario;E8:E15;
APILARH(A8:D15;escenario;
itotalSI.CONJUNTO(
escenario="Escenario 1";
ELEGIRCOLS(ELEGIRFILAS(F6:H18;COINCIDIRX(A8:A15;F4:F16));1);
escenario="Escenario 2";
ELEGIRCOLS(ELEGIRFILAS(F6:H18;COINCIDIRX(A8:A15;F4:F16));2);
escenario="Escenario 3";
ELEGIRCOLS(ELEGIRFILAS(F6:H18;COINCIDIRX(A8:A15;F4:F16));3)
)
)
)
`

Usa ELEGIRFILAS para seleccionar las filas correctas de la tabla de coeficientes según el concepto, ELEGIRCOLS para elegir la columna del escenario, y SI.CONJUNTO para ramificar según el escenario.

John aporta la solución más elegante con INDICE + COINCIDIRX + DERECHA:

`
=APILARH(A8:E15;
C8:C15 D8:D15
INDICE(F6:H18; COINCIDIRX(A8:A15;F4:F16); DERECHA(E8:E15))
)
`

Brillante en una sola línea: COINCIDIRX encuentra la fila del concepto, DERECHA(E8:E15) extrae el número del escenario (el "1" de "Escenario 1") y lo usa directamente como índice de columna en INDICE. Elimina completamente la necesidad de SI.CONJUNTO.

En un hilo posterior, el usuario intentó usar ELEGIRFILAS para otro paso y descubrió que es una función "todo o nada": si un solo elemento del índice es inválido (vacío, 0 o error), la función entera devuelve error. Nacho propuso envolver en MAP + SI.ERROR:

`
=MAP(G3#;LAMBDA(x;SI.ERROR(ELEGIRFILAS(D12:D13;x);"")))
`

John también señaló que BUSCARX` es más adecuada en estos casos porque no tiene esa limitación.

Más contenido de Excel en InflueXcel