【问题标题】:Excel : Use data in one table of Excel to calculate values in anotherExcel : 使用 Excel 一个表格中的数据来计算另一个表格中的值
【发布时间】:2021-02-15 21:31:44
【问题描述】:

我正在尝试在 Excel 上构建一个简单的食物营养计算器,我可以与他人分享。

我有一张每 100 克的食物清单和营养信息:

Item Weight (g) Calories Protein Carbs Fat Fiber Sugar
Rice White 100 130 2.7 28 0.3 0.4 0.1
Rice Brown 100 111 2.6 23 0.9 1.8 0.4
Almonds 100 579 21.15 21.55 49.33 12.5 4.35
Peanuts 100 567 25.8 16.13 49.24 8.5 4.72
Cashew 100 553 18.22 30.19 43.85 3.3 5.91
Walnuts 100 654 15.23 13.71 65.21 6.7 2.61
Pistachios 100 560 20.16 45.32 27.17 10.16 7.66
Hazelnuts 100 628 14.95 16.7 60.75 9.7 4.34
Rice Basmati 100 121 3.54 25.22 0.38 0.4 0.05

我想要另一张表,用户在其中记录他或她当天消耗的每种食物的数量。我希望项目名称来自下拉列表。其余列需要计算。

Time Item Amount (g) Calories Protein Carbs Fat Fiber Sugar
10:00 AM (item name dropdown) 200 (formula) (formula) (formula) (formula) (formula) (formula)

你能解释一下如何做到这一点吗?

我可以使用数据验证从 sheet1 中的项目名称列创建一个列表,但是如何从 Sheet1 中获取其余列值?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    假设源数据在A1:H10 中,然后第二个表格数据在K1:S2 中,然后在单元格N2 中,即卡路里公式为:

    =INDEX($C$2:$H$10,MATCH($L2,$A$2:$A$10,0),MATCH(N$1,$C$1:$H$1,0))*($M2/INDEX($B$2:$B$10,MATCH($L2,$A$2:$A$10,0)))

    在哪里

    =INDEX($C$2:$H$10,MATCH($L2,$A$2:$A$10,0),MATCH(N$1,$C$1:$H$1,0)) 匹配卡路里表中的值,然后使用 $M2/INDEX($B$2:$B$10,MATCH($L2,$A$2:$A$10,0) 将总数量除以 B 列中的参考量来计算乘数。

    【讨论】:

      【解决方案2】:
      1. 格式为表格。 (选择表格 > 主页 > 格式为表格)
      2. 给一个名字。 (表 > 表名称)。我选择了“FoodTable”。
      3. 在新工作表上创建带有标题的表格。为了便于调试公式,我又添加了一些:
      Time Item Weight (g) Reference Weight Calories Original Protein Original Carbs Original Fat Original Fiber Original Sugar Original Calories Protein Carbs Fat Fiber Sugar
      10:00 AM Rice Brown 200 100 121 3.54 25.22 0.38 0.4 0.05 242 7.08 50.44 0.76 0.8 0.1
      1. 向Item列添加数据验证(Data > Data Validation > Validation Criteria > Allow > List。您可以选择来源以突出显示item列)

      2. 在“参考重量”列中,您可以输入以下公式以在 FoodTable 中查找重量:=INDEX(FoodTable[Weight (g)],MATCH([@Item],FoodTable[Item]))

      3. 对其他“原始”列重复相同的操作。

      4. 用以下公式填写卡路里:=[@[Weight (g)]]*[@[Calories Original]]/[@[Reference Weight]]。对其他列重复此操作。

      5. (可选)隐藏“原始”列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-08
        • 1970-01-01
        • 1970-01-01
        • 2012-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        相关资源
        最近更新 更多