Adaptar fórmula buscar v en excel

Tengo un excel con una hoja llamada "ALIMENTOS" con algunos de sus nutrientes, como se ve en la imagen de abajo:

Pues bien luego en otra hoja lo que pretendo hacer es llevar un control de mi dieta en las 5 comidas que hago diarias con unas tablas como se ve en la imagen de abajo, lo que quiero hacer es seleccionar el alimento y poner una cantidad en gramos y que el me calcule el porcentaje de cada nutriente.

Solo he conseguido que me lo realice en el desayuno con esta formula:

=SI(Y($B8<>"";$C8<>"");SI.ERROR(BUSCARV($B8;ALIMENTOS!$B:$I;COLUMNA();0)*$C8/100;"");"")

En las demás columnas no he conseguido que me funcione la formula no he sido capaz de adaptarla. Espero que alguien me pueda ayudar con este tema para adaptar la formula a las demás comidas del día.

Dejo el link para ver el excel de muestra por si alguien lo prefiere ver.

http://www.filebig.net/files/PaBwq8HQz5 

2 Respuestas

Respuesta
1

Cuando en la formula "BUSCARV" le indicas como valor de columna "Columna()", calcula la columna donde está en ese momento y ese valor es de donde va a a coger los datos.

Da la casualidad, que la primera fórmula (Desayuno), te funciona bien porque da la casualidad, que has definido tres columnas, siendo la "B", (Pescado) la primera, la "C" (Estado), la segunda y la "D" (Cal) la tercera... y cuando recuperas los valores, lo pones en en la casilla "C", que justamente coincide con la tercera.

Pero en las comidas, ya no coincide en la columna 3, sino en 12... y coge el valor de la casillas 12, que como está vacía, no trae nada.

La solucion está en cambiar esto:

=SI(Y($B8<>"";$C8<>"");SI.ERROR(BUSCARV($B8;ALIMENTOS!$B:$I;COLUMNA();0)*$C8/100;"");"")

Por esto otro:
=SI(Y($B8<>"";$C8<>"");SI.ERROR(BUSCARV($B8;ALIMENTOS!$B:$I;4;0)*$C8/100;"");"")

El "4" Marcado en negro, es la columna de donde tiene que sacar los datos (Cal).

Pruébalo, porque funcionará seguro.

... Y no olvides puntuar respuesta ;-)

¡Gracias! Muchas gracias me ha funcionado pero en lugar de esto:

=SI(Y($B8<>"";$C8<>"");SI.ERROR(BUSCARV($B8;ALIMENTOS!$B:$I;4;0)*$C8/100;"");"")

Tuve que poner esto:

=SI(Y($J8<>"";$K8<>"");SI.ERROR(BUSCARV($J8;ALIMENTOS!$B:$I;3;0)*$K8/100;"");"")

Es decir empezar en la columna 3 ya que cuando lo puse en la 4 me di cuenta que en las calorías me traía el valor de las proteínas y así sucesivamente así que siguiendo tu consejo lo cambie y me trae los valores perfectamente.

Pensaba que no hacia falta poner la columna, puesto que me dieron ese ejemplo y me funciono pues me obcequé.

Una vez que hice la fórmula en las calorías y me funciono arrastre la fórmula a las celdas contiguas, proteínas, hidratos etc.. pero me traía el mismo valor tuve que cambiar manualmente el número de columna para que me trajera los valores correctos. Otras veces cuando arrastro alguna fórmula me las coge bien.

Muchísimas gracias por tu respuesta.

Un saludo

Respuesta
1

En el link tienes algo que aportará algo más a lo dicho

https://youtu.be/mkZXXDSwLEM

Si bien esto es para sumar, puedes adaptarlo

https://youtu.be/GhpxZWwLhyc

https://youtu.be/d4VgP82naPI

¡Gracias! Lo mirare y lo intentare adaptar, en realidad utilizar la función buscarV la se aplicar cuando es directamente, lo que me dio problemas es cuando tengo que hacer una regla de 3 para que me busque el valor y me lo calcule como era este ejemplo.

Un saludo y muchas gracias por contestar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas