Configurar filas como fuente de datos de conjunto

Chicos, no puedo incrustar una imagen así que haré lo mejor que pueda para explicar...

Estoy en excelente creación de un organigrama de comidas diarias. Tengo dos Tablas. La tabla 1 tiene todos los alimentos posibles para elegir y sus macronutrientes promedio. La tabla 2 tiene columnas para la comida que comí, más una columna adicional para la cantidad específica de esa comida que comí.

Estoy tratando de hacerlo para que en la tabla dos cuando entre en una comida de la lista se necesita esa información de alimentos y la multiplica por la cantidad de porciones que comí. El gran problema es que no sé cómo extraer todos los datos de una fila en la lista de alimentos y que todo sea colocado en la segunda tabla sin desplazarse hasta la lista para encontrar la comida, copiar los datos y luego multiplicar manualmente todos sus valores por el tamaño de la porción que comí, es sólo una manera tedioso. Necesito encontrar una manera de simplificar el proceso...

Pensé que podría probar una caja de combo para preguntar rápidamente un dato específico de alimentos y luego si puedo conseguir que tire todos los datos específicos de ese alimento entonces simplemente insertar un tamaño de porción para multiplicar todas las macros por. Aunque esto no ha tenido éxito ya que no puedo conseguir combo-box a los datos de consulta en Excel 2019 16.43 ya que no parece haber una caja de propiedades para él como en las versiones anteriores.

¿Alguna idea de cómo se podría hacer esto? Gracias.

Pregunta hecha hace 3 años, 4 meses, 27 días - Por quantumquill


2 Respuestas:

  • Para simplificar el proceso de extracción de datos de una fila en la lista de alimentos y colocarlos en la segunda tabla sin tener que hacerlo manualmente, podrías utilizar la función BUSCARV de Excel.

    Aquí te dejo los pasos para configurarlo:

    • En la tabla 2 donde tienes las comidas que has comido y la cantidad, crea columnas adicionales para los macronutrientes de cada alimento.
    • Utiliza la función `BUSCARV` para buscar el alimento seleccionado en la tabla 1 y traer automáticamente los datos de sus macronutrientes a la tabla 2. Por ejemplo, puedes utilizar una fórmula como esta en la celda donde quieres mostrar las calorías:

    excel
       =BUSCARV(A2,TablaAlimentos,2,FALSO)*B2
       
    Donde:
    • A2 es la celda donde tienes el nombre del alimento en la tabla 2.
    • TablaAlimentos es el rango de la tabla 1 que contiene todos los alimentos posibles y sus macronutrientes.
    • 2 indica que quieres obtener el valor de la segunda columna de la tabla 1 (en este caso, las calorías).
    • B2 es la celda donde tienes la cantidad específica de ese alimento que has comido en la tabla 2.

    • Repite este proceso para cada macronutriente que quieras calcular (proteínas, carbohidratos, etc.).

    De esta manera, al seleccionar un alimento en la tabla 2 y especificar la cantidad, Excel automáticamente calculará los macronutrientes multiplicando los valores por la cantidad de porciones que has comido.

    Espero que esta sugerencia te ayude a simplificar el proceso y mejorar tu organigrama de comidas diarias. ¡Déjame saber si tienes alguna otra pregunta o necesitas más ayuda!

    Respondida el Dec 20, 2020 a las 05:31 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución 1: Usar BUSCARV

    Puedes usar la función BUSCARV para extraer los datos de macronutrientes de la Tabla 1 a la Tabla 2. La fórmula sería similar a:

    
    =BUSCARV(A2, Tabla1!A:D, COLUMNA(B1), FALSO)
    

    Donde:

    A2 es la celda en la Tabla 2 que contiene el nombre de la comida Tabla1!A:D es el rango de datos en la Tabla 1 que contiene los nombres de alimentos y macronutrientes COLUMNA(B1) es el número de columna en la Tabla 2 que contiene la cantidad de porciones FALSO indica una coincidencia exacta

    Solución 2: Usar una tabla dinámica

    Una tabla dinámica es una herramienta eficaz para resumir y analizar datos. Puedes crear una tabla dinámica en la Tabla 2 utilizando la Tabla 1 como fuente de datos. Esto te permitirá mostrar los datos de macronutrientes para cada comida de forma dinámica.

    Solución 3: Usar VBA

    Si necesitas una solución más automatizada y personalizada, puedes utilizar VBA. Puedes escribir un código que extraiga los datos de la Tabla 1 y los inserte en la Tabla 2 basándose en la comida seleccionada y el tamaño de la porción.

    Aquí tienes un ejemplo de código VBA que puedes personalizar según tus necesidades:

    
    Sub ExtraerDatosAlimentos()
        Dim wb As Workbook
        Dim ws1 As Worksheet
        Dim ws2 As Worksheet
        Dim rngComida As Range
        Dim rngMacros As Range
        Dim strComida As String
        Dim i As Integer
    
        ' Establecer los objetos de hoja de cálculo
        Set wb = ThisWorkbook
        Set ws1 = wb.Worksheets("Tabla1")
        Set ws2 = wb.Worksheets("Tabla2")
    
        ' Obtener el rango de nombres de alimentos en la Tabla 1
        Set rngComida = ws1.Range("A2:A" & ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row)
    
        ' Obtener el número de fila para la comida seleccionada en la Tabla 2
        strComida = ws2.Cells(ActiveCell.Row, 1)
        i = rngComida.Find(strComida).Row
    
        ' Obtener el rango de macronutrientes en la Tabla 1
        Set rngMacros = ws1.Cells(i, 2).Resize(1, 4)
    
        ' Insertar los datos de macronutrientes en la Tabla 2
        ws2.Cells(ActiveCell.Row, 2).Value = rngMacros.Cells(1, 1).Value
        ws2.Cells(ActiveCell.Row, 3).Value = rngMacros.Cells(1, 2).Value
        ws2.Cells(ActiveCell.Row, 4).Value = rngMacros.Cells(1, 3).Value
        ws2.Cells(ActiveCell.Row, 5).Value = rngMacros.Cells(1, 4).Value
    End Sub
    

    Nota: Este código asume que la Tabla 1 tiene los nombres de alimentos en la columna A y los macronutrientes en las columnas B-E.

    Respondida el Dec 20, 2020 a las 05:35 - por Gemini

    Votos positivos: 0 | Votos negativos: 0