【问题标题】:IF statement to return different values for 3+ conditionsIF 语句为 3 个以上的条件返回不同的值
【发布时间】:2015-09-23 13:53:25
【问题描述】:

我正在尝试在单元格中配置批量折扣系统。我想说:

如果数量为 1,则成本为 49.99 美元;如果数量为 2-3,则成本为 49.50 美元;如果数量为 4+,则成本为 48.99 美元。

我得到的最远的是:

=OR((IF(I7<2,49.99)),(IF(OR(I7>1,I7<4),49.5)))  

其中I7 是包含数量的单元格。这将返回TRUE,我理解这就是OR 函数的工作原理。

在给定多种潜在条件的情况下,我不知道如何将多个输出合并到单个单元格中。

【问题讨论】:

    标签: excel if-statement excel-formula logic


    【解决方案1】:

    您可以省略OR 并简单地链接多个IFs:

    =IF(I7<=0, 0, IF(I7=1, 49.99, IF(I7<4, 49.5, 48.99)))
    

    伪代码如下:

    If      I7 <= 0, then return  0.00
    else If I7 =  1, then return 49.99
    else If I7 <  4, then return 49.50
    else                  return 48.99
    

    【讨论】:

    • 好的,我之前尝试过嵌套的 IF,但我想我犯了一个错误,所以谢谢。但我想更具体一点。使用您的公式,I7 中 =-0 的值将返回 49.50。这是我调整后的公式,但对于值 2 和 3,它返回 0...=IF(I7=1, 49.99, IF(1&lt;I7&lt;4, 49.5, IF(I7&gt;3, 48.99, 0)))
    • 您不能使用1&lt;I7&lt;4 来检查“介于”。你需要做AND(1 &lt; I7, I7 &lt; 4)。查看我的更新,现在添加了 0 案例。
    • 好的,谢谢。我也使用了AND 公式来处理负数。
    • 在这种情况下,第一个测试应该是I7&lt;=0。更新了我的答案。
    • 哦,好的,是的,这不那么混乱:)
    【解决方案2】:

    嵌套 IF 的常规替代方法是仅对断点使用排序的查找数组,并使用不精确匹配选项应用 VLOOKUP。假设您有一个名为 table_array 的范围(如果属于工作簿范围,则为工作簿中的任何位置):

    | 1 | 49.99 | | 2 | 49.5 | | 4 | 48.99 |

    而E1包含数量:

    =VLOOKUP(E1,table_array,2,1) 
    

    【讨论】:

    • 我实际上考虑过使用VLOOKUP,但我的数据没有排序。不过,我并没有考虑将单独的值表放在一边。感谢您的额外投入!
    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多