Google sheets 调试具有多个嵌套IF语句的适应度计算器

Google sheets 调试具有多个嵌套IF语句的适应度计算器,google-sheets,nested-if,Google Sheets,Nested If,我用这个来计算人们的TDEE。我正在使用GoogleSheets创建一种表单,但是GoogleSheets有点难以使用。我得到一个公式解析错误。格式很糟糕,对此我很抱歉 我知道我在某处犯了一个小的逗号或括号错误,但我不确定在哪里 代码应该询问人们是否喜欢公制/英制、男性/女性、身高、体重、活动水平和年龄 以下是谷歌表单的功能。基本上是: IF(A2 = "foo","A2 is foo") 语法是: IF(逻辑表达式、值如果为真、值如果为假) 你有像IF(轻度活动(1-3天锻炼/周)”这样的东

我用这个来计算人们的TDEE。我正在使用GoogleSheets创建一种表单,但是GoogleSheets有点难以使用。我得到一个公式解析错误。格式很糟糕,对此我很抱歉

我知道我在某处犯了一个小的逗号或括号错误,但我不确定在哪里

代码应该询问人们是否喜欢公制/英制、男性/女性、身高、体重、活动水平和年龄

以下是谷歌表单的功能。基本上是:

IF(A2 = "foo","A2 is foo")
语法是:

IF(逻辑表达式、值如果为真、值如果为假)


你有像
IF(轻度活动(1-3天锻炼/周)”
这样的东西,显然是行不通的。这种IFs的嵌套一开始就不应该存在,它是一个输入错误的雷区。使用
hlookup
vlookup
代替。替换五个嵌套IFs的示例是
vlookup

=if(D9=”Imperial”,
  if(D10=”Male”,
    vlookup(D16, {
      ”Sedentary (no exercise)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.2;   
      ”Lightly Active (1-3 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.375;
      ”Moderately Active (3-5 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.55;
      ”Very Active(6-7 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.725;
      ”Extremely Active(exercise twice a day)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.9,
       }, 2, false)
    ....
请注意,您可以在此处放置15个选项,而不是5个选项,并且不需要新的括号

根据数据结构的不同,您可以将这些参考表放在工作表的其他位置,例如表A1:B5、表A6:B11等:

=if(D9=”Imperial”,
   if(D10=”Male”,
     vlookup(D16, Table!A1:B5, 2, false),
     vlookup(D16, Table!A6:B11, 2, false)
     ),
   if(D10=”Male”,
     vlookup(D16, Table!A12:B16, 2, false),
     vlookup(D16, Table!A17:B21, 2, false)
     )
   )

我们可以将每个
vlookup
包装在
iferror
中,这样当输入数据不是预期的类型时,您可以得到空白输出,而不是#N/A!错误(尽管后者的信息更丰富)。

您有
IF(轻度活动(1-3天/周)“
这显然行不通。这种IFs嵌套首先不应该存在,它是一个打字雷区。使用
hlookup
vlookup
代替。替换五个嵌套IFs的示例:

=if(D9=”Imperial”,
  if(D10=”Male”,
    vlookup(D16, {
      ”Sedentary (no exercise)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.2;   
      ”Lightly Active (1-3 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.375;
      ”Moderately Active (3-5 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.55;
      ”Very Active(6-7 days of exercise/week)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.725;
      ”Extremely Active(exercise twice a day)”,
        66 + ( 6.2 x D14 ) + ( 12.7 x (D13x12+G13) ) – ( 6.76 x D12 )x1.9,
       }, 2, false)
    ....
请注意,您可以在此处放置15个选项,而不是5个选项,并且不需要新的括号

根据数据结构的不同,您可以将这些参考表放在工作表的其他位置,例如表A1:B5、表A6:B11等:

=if(D9=”Imperial”,
   if(D10=”Male”,
     vlookup(D16, Table!A1:B5, 2, false),
     vlookup(D16, Table!A6:B11, 2, false)
     ),
   if(D10=”Male”,
     vlookup(D16, Table!A12:B16, 2, false),
     vlookup(D16, Table!A17:B21, 2, false)
     )
   )
可以将每个
vlookup
包装在
iferror
中,这样当输入数据不是预期类型时,您可以得到空白输出,而不是#N/A!错误(尽管后者的信息更丰富)