Estoy tratando de aprender cómo referirme "dinámicamente" a una celda de otra hoja dada una condición textual.
Tengo el siguiente escenario:
Ejemplo
Hay dos hojas etiquetadas como "A" y "B".
En la hoja "B" tengo una tabla de 12 filas y 4 columnas. En cada fila hay una etiqueta nutricional, como "Avena", seguida de columnas que indican las calorías correspondientes, los carbohidratos, etc. (véase la imagen siguiente).
En la hoja "A", hago referencia a cada alimento con una columna de cantidad posterior, como se muestra a continuación.
Objetivo
A partir de la hoja "A", intento calcular las calorías de una comida, por lo que para cada ingrediente quiero multiplicar su cantidad por su equivalente en calorías por 100 gramos, como se indica en la hoja "B".
Requisito para la fórmula: la capacidad de referirse a una celda de otra hoja basada en una condición textual de la celda actual. Por ejemplo, quiero poder decir que la cantidad actual corresponde a "Avena" ya que la columna que precede a "Cantidad 1" es "Avena". Entonces, intuitivamente, tengo 50 gramos de avena (hoja A) que quiero multiplicar por las calorías de la avena (tomadas de la hoja B por 100g). Así que estoy tratando de expresar la fórmula de tal manera que automáticamente toma la celda anterior a la cantidad y trata su texto, aquí "Avena", como la referencia de la celda a la hoja B.
Es la primera vez que intento hacer referencias dinámicas. Mi intento (que no ha funcionado) ha sido hasta ahora en la línea de usar INDIRECT
para referirse a la celda correspondiente de la hoja B dado el texto "Avena". Así que he probado:
A::Table 1::E2 * B::Table 1::Oats&"::B2"
Pero da un error. Incluso si funcionara, esto seguiría sin ser lo que realmente quería lograr, porque mi intención ideal es la capacidad de la celda anterior de B2 de la hoja B sin tener que especificar explícitamente "Avena".
Pregunta:
-
¿En qué me estoy equivocando con mi sintaxis en la fórmula al referirme a otra hoja (B) y tomar su celda correspondiente a la 2ª columna de la fila "Avena"? ¿Debería utilizar de alguna manera las funciones
INDIRECT
yADDRESS
juntos (como en este ejemplo )? -
¿Existe una forma de generalizar esto, en la que ya no tengamos que especificar ni siquiera el alimento, sino que simplemente seleccionemos la cantidad y el alimento se tome automáticamente como la celda que le precede (por filas)?