【问题标题】:Using IF formula in spreadsheets在电子表格中使用 IF 公式
【发布时间】:2018-02-06 13:15:19
【问题描述】:

我有一个表格,例如下面的示例,其中用户从选项列表中选择优先级和复杂性,并根据第 1 列和第 2 列中的项目组合在排名列中分配一个数字。我尝试重新工作公式here,但我显然遗漏了一些东西。

| Priority | Complexity | Rank |
| Low      | Complex    | 3    |
| Medium   | Complex    | 2    |
| High     | Unknown    | 1    |

下面的公式适用于具有 lowhigh 优先级的任何事物,但对于 medium 显示 N/A,我无法确定为什么...

=IF(G46="High",IF(H46="Simple",1,IF(H46="Complex",2,IF(H46="Unknown",1))),IF(AND(G46="Medium",IF(H46="Simple",1,IF(H46="Complex",2,IF(H46="Unknown",2)))),IF(AND(G46="Low",IF(H46="Simple",2,IF(H46="Complex",3,IF(H46="Unknown",3)))))

【问题讨论】:

    标签: excel google-sheets


    【解决方案1】:

    这个公式让我有点不寒而栗。我从不喜欢大量嵌套的 IF 公式,因为它们难以阅读、脆弱且容易弄乱。

    我强烈建议只制作一个小参考表,然后使用INDEX/MATCH 方法查找适当的值。请参见下面的示例。

    请注意,您可以将表格放在任何您想要的位置,如果需要,您甚至可以将其隐藏。

    【讨论】:

    • 这是有道理的 - 我从嵌套 IF 的兔子洞开始,没想到可能还有其他更简单的替代方案!
    • @pwq 感谢您接受答案。通常,如果我发现自己走上了一大堆嵌套IF 的道路,我会看看我是否可以想到一个带有CHOOSE 函数的替代方案(我建议你也查看这个函数),但是CHOOSE一般只适用于一维数据。如果需要二维数据,我通常在这里使用这种方法和查找表。这使事情更容易阅读,并且还可以在必要时轻松更改未来的值。
    【解决方案2】:

    一位同事现在为我解决了这个问题,我想在这里分享一下,以防其他人受益:

    =IF(F2="High",IF(G2="Simple",1,IF(G2="Complex",2,IF(G2="Unknown",1))),IF(F2="Medium",IF(G2="Simple",1,IF(G2="Complex",2,IF(G2="Unknown",2))),IF(F2="Low",IF(G2="Simple",2,IF(G2="Complex",3,IF(G2="Unknown",3))))))

    【讨论】:

      【解决方案3】:

      嵌入式 if 是调试/审计的噩梦。大多数时候,您可以使用 Index(Match()) 或 Sumprod 编写更简单的函数--

      这里:

      1. 创建表
      2. 使用 sumproduct :

        =SUMPRODUCT(--(B4:B6=G3),--(C4:C6=H3),D4:D6)

      【讨论】:

        猜你喜欢
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 2015-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-13
        • 2021-08-05
        相关资源
        最近更新 更多