【问题标题】:Excel Serial If statementsExcel 串行 If 语句
【发布时间】:2013-06-22 21:16:24
【问题描述】:

我是 Excel 新手,我正在为一个公式而苦苦挣扎。本质上,我正在寻找的是使用公式通过一组程序过滤单元格(这部分并不严格)。

例如

假设我有一个单元格,A1。我正在尝试根据它是否在某个值范围内对此执行不同的计算。问题是,它可以在几个范围内。

伪代码表示

If(A1 > 187.5) {
   // Run some code here.
}

If(A1 > 150) {
   // Run some code here.
}

注意:上面的例子只是为了说明顺序 if 语句的逻辑。

请注意,我想要嵌套的 If 语句。我只是想通过各种检查来运行相同的值。如何在 Excel 公式中执行此操作?

【问题讨论】:

  • 您想在 Excel 公式中“运行代码”吗?那是什么?!你能举一个“运行代码”的例子吗?
  • 没有没有。我只是想说明逻辑。我想要连续的 If 语句,而不是嵌套的 if 语句。我只是在努力寻找合适的语法。
  • 也许 =(A1>187.5)*+(A1>150)*...?或者,如果您正在寻找互斥的结果,则第二项可能是 (A1>150)*(A1
  • =(A1 > 187.5) * <some expression>。这个的布尔部分是否会被隐式转换为数值?
  • 是的(在各种棘手的公式中都会用到这一事实)。

标签: excel if-statement


【解决方案1】:

如果您检查的数字之间存在关系,您很可能可以使用

=CHOOSE(FLOOR(A1/160,1)+1,"<160",">160")

这会将您的 150 放在第一个,然后将您的 185 放在第二个

【讨论】:

    【解决方案2】:

    我能想到的最好的方法如下。

    =(A1>187.5)*<some expression>+(A1>150)*<some expression>+....
    

    这样的结果将是一些单一的值。 (获取多个值的直接方法是将各个术语放在单独的单元格中。

    如果您希望结果反映几个相互排斥的结果之一,那么您会想要:

    =(A1>187.5)*<some expression>+(A1>150)*(A1<=187.5)*...etc.
    

    【讨论】:

      【解决方案3】:

      有很多方法可以实现这一点。一种方法是使用这样的嵌套条件:

      =IF(Something, do something, IF(something else, do something, do something))

      如果您想稍微压缩一下公式,这很好,但可以说会导致公式更加混乱。根据 FAST-Standard 组织,那些嵌套条件的情况应该由使用标志来代替。最简单的情况是,例如,您将根据销售额查找回扣百分比。在多个单元格中,只有当值与特定范围匹配时,IF 条件才会评估为 true。然后,您的公式可以像您的标志与您的回扣百分比一样简单。

      这是一个例子,但它也可以很好地应用于其他情况。

      【讨论】:

      • 如果您详细说明您要完成的工作,我可以尝试让我的回答更符合您的情况,而无需删除一般建议部分。
      • 好吧,这将是嵌套的。所以第二个 IF 语句只有在第一个 IF 语句为 False 时才会执行。不管第一个 IF 的输出如何,我都希望第二个 If 语句执行。
      • 然后在同一个公式中创建多个 IF。同样,您如何执行此操作取决于您在“在此处运行一些代码”部分中尝试实现的目标。
      猜你喜欢
      • 1970-01-01
      • 2013-08-19
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 2017-11-30
      相关资源
      最近更新 更多