【问题标题】:How can I debug my complex IF Excel formula?如何调试复杂的 IF Excel 公式?
【发布时间】:2017-09-30 08:25:09
【问题描述】:

我是一名学校教师,正在开发我学校的评估系统。我应该怎么做才能更正这个公式?

=IF(H3="SUR",IF(Subject!C3<2.7,"Not on track",IF(Subject!C3<=3.29,"On track",IF(Subject!C3>=3.3,"Above", IF(H3="MAS",IF(Subject!C3<2.2,"Not on track",IF(Subject!C3<=2.79,"On track",IF(Subject!C3>=2.8,"Above", IF(H3="EXP",IF(Subject!C3<1.7,"Not on track",IF(Subject!C3<=2.29,"On track",IF(Subject!C3>=2.3,"Above",IF(H3="EM3",IF(Subject!C3<1.2,"Not on track",IF(Subject!C3<=1.79,"On track",IF(Subject!C3>=1.8,"Above", IF(H3="EM2",IF(Subject!C3<0.7,"Not on track",IF(Subject!C3<=1.29,"On track",IF(Subject!C3>=1.3,"Above",IF(H3="EM1",IF(Subject!C3<0.23,"Not on track",IF(Subject!C3<=0.42,"On track",IF(Subject!C3>=0.43,"Above"))))))))))))))))))))))))

结果取决于在 H_ 中输入的内容,并且每个类别都有特定的范围。

【问题讨论】:

  • 当 h3="sur" 成立时会发生什么?我没有在你的公式中看到它。您有一堆嵌套的 IF,但其他缺少的看起来像。您应该使用notepad++将这么长的公式格式化为多行并匹配括号。
  • 当 H3 = SUR... AND C3 =3.31(应显示“高于” )
  • 我认为你应该使用查找表而不是嵌套的 ifs。
  • 请给我一些指导?当我完全知道我不是一个经验丰富的巫师时,我被分配了这项艰巨的任务......
  • 基本上我需要以下公式:H3 = SUR AND IF Subject!C3 3.31, “以上”。

标签: excel if-statement excel-formula formulas


【解决方案1】:

如cmets中所说,创建一个表:

那么您将使用以下数组公式:

=INDEX(O:O,MATCH(C3,IF($M$1:$M$18=H3,$N$1:$N$18)))

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。如果操作正确,Excel 会在公式周围加上{}

每个组都需要聚集在一起并按升序排列,此方法才能起作用。

它确实允许在不改变硬编码公式的情况下改变标准和输出。

【讨论】:

  • 谢谢,但是关于H3是否有不同的条目,如SUR、EXP、EM1、EM2和EM3,这将如何改变?
  • 它根本不会被改变,它会在给定的阈值下找到正确的输出。只需将 H3 更改为任何选项,它将使用这些数字作为阈值。 @OllieW。关于统治他们的公式。
  • 感觉自己像个菜鸟……所以我只输入所有可能性?
  • 是的,将 2.2 放入 C3 并将 H3 从 SUR 更改为 MAS,单元格将从 Not on Track 更改为 On Track @OllieW
  • 而任何EMs 都将成为Above 的相同号码。
【解决方案2】:

以下是如何通过 3 个步骤帮助自己。

第 1 步 - 放大编辑栏,使其包含多于 1 行: 第 2 步 - 使用 Alt+Enter 使公式易于理解: 第 3 步 - 在 Excel 功能区上,转到 Formulas > Evaluate Formula 并按评估:

祝你好运,玩得开心! :)

【讨论】:

    【解决方案3】:

    应该是两个单独的查找,因为文本查找是精确的,而数字查找是近似的。例如,如果你在A1:D6 范围内有这个:

    EM1     0.23    0.43    Exp
    EM2     0.7     1.3     2
    EM3     1.2     1.8
    EXP     1.7     2.3
    MAS     2.2     2.8
    SUR     2.7     3.3
    

    然后=VLOOKUP("EXP",A1:C6,2,0) 生成 1.7,=VLOOKUP("EXP",A1:C6,3,0) 生成 2.3

    =IF(D2 < VLOOKUP(D1, A1:C6, 2, 0), "Not on track",
     IF(D2 < VLOOKUP(D1, A1:C6, 3, 0), "On track", "Above"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多