【问题标题】:Complicated IF statement returning false复杂的 IF 语句返回 false
【发布时间】:2020-05-22 12:23:03
【问题描述】:

我正在使用这个很长的IF 语句来计算销售人员的佣金率。如果为真部分的值有效,但如果为假的值在单元格中返回FALSE,而不是执行在本例中为(IF(R11<1,(H11*($C$7/10000)),H11*R11) 的假指令。也许我不能在公式的 False 部分有另一个 IF

如果主要的IF 语句是FALSE(意味着Q11 为空白)我希望公式的错误部分然后
测试 R11 是否为空白,如果为空白则 (H11*($C$7/10000)) 如果 R11 不为空,则 H11*R11

有人可以帮我解决这个问题吗?

=IF(Q11>1,(IF(ISNUMBER(SEARCH("COOP",Q11)),(H11*1%),IF(ISNUMBER(SEARCH("CERBASI",Q11)),(H11*0.5%),IF(ISNUMBER(SEARCH("Direct",Q11)),(H11*0.3%),IF(ISNUMBER(SEARCH("Specialist",Q11)),(H11*0.5%),IF(ISNUMBER(SEARCH("UNITED",Q11)),(H11*1%),IF(ISNUMBER(SEARCH("Subordinate",F11)),(H11*0%),(IF(R11<1,(H11*($C$7/10000)),H11*R11))))))))))

【问题讨论】:

    标签: if-statement excel-formula


    【解决方案1】:

    也适用于访问此页面的任何其他人。这是作者 if 语句的展开版本。

    =IF(
        Q11>1,
        (IF(
            ISNUMBER(SEARCH("COOP",Q11)),
            (H11*1%),
            IF(ISNUMBER(SEARCH("CERBASI",Q11)),
                (H11*0.5%),
                IF(
                    ISNUMBER(SEARCH("Direct",Q11)),
                    (H11*0.3%),
                    IF(
                        ISNUMBER(SEARCH("Specialist",Q11)),
                        (H11*0.5%),
                        IF(
                            ISNUMBER(SEARCH("UNITED",Q11)),
                            (H11*1%),
                            IF(
                                ISNUMBER(SEARCH("Subordinate",F11)),
                                (H11*0%),
                                (IF(
                                    R11<1,
                                    (H11*($C$7/10000)),
                                    H11*R11
                                ))
                            )
                        )
                    )
                )
            )
        ))
    )
    

    抱歉,我知道您从未要求重新创建它,但它真的很难阅读、维护和更改。这个呢?

    =IFS(OR(ISNUMBER(SEARCH("COOP",Q11)), ISNUMBER(SEARCH("UNITED",Q11))), (H11*1%), OR(ISNUMBER(SEARCH("CERBASI",Q11)), ISNUMBER(SEARCH("Specialist",Q11))), (H11*0.5%), ISNUMBER(SEARCH("Direct",Q11)), (H11*0.3%), ISNUMBER(SEARCH("Subordinate",F11)), (H11*0%)), R11<1,(H11*($C$7/10000)), H11*R11, TRUE, $C$1)
    

    更容易阅读:

    =IFS(
        OR(ISNUMBER(SEARCH("COOP",Q11)), ISNUMBER(SEARCH("UNITED",Q11))),
        (H11*1%),
        OR(ISNUMBER(SEARCH("CERBASI",Q11)), ISNUMBER(SEARCH("Specialist",Q11))),
        (H11*0.5%),
        ISNUMBER(SEARCH("Direct",Q11)),
        (H11*0.3%),
        ISNUMBER(SEARCH("Subordinate",F11)),
        (H11*0%)),
        R11<1,
        (H11*($C$7/10000)),
        H11*R11,
        TRUE,
        $C$1)
    

    TRUE 只是我在 IFS 上强制执行 else 语句的方式,$C$1 将由 else 语句执行。或者你可以在一个 if 语句中嵌入两个 ifs 语句

    =IF(
        Q11 > 1,
        (IFS(
            OR(ISNUMBER(SEARCH("COOP",Q11)), ISNUMBER(SEARCH("UNITED",Q11))),
            (H11*1%),
            OR(ISNUMBER(SEARCH("CERBASI",Q11)), ISNUMBER(SEARCH("Specialist",Q11))),
            (H11*0.5%),
            ISNUMBER(SEARCH("Direct",Q11)),
            (H11*0.3%),
            ISNUMBER(SEARCH("Subordinate",F11)),
            (H11*0%)),
            R11<1,
            (H11*($C$7/10000)),
            H11*R11)),
        (IFS(
            OR(ISNUMBER(SEARCH("COOP",Q11)), ISNUMBER(SEARCH("UNITED",Q11))),
            (H11*1%),
            OR(ISNUMBER(SEARCH("CERBASI",Q11)), ISNUMBER(SEARCH("Specialist",Q11))),
            (H11*0.5%),
            ISNUMBER(SEARCH("Direct",Q11)),
            (H11*0.3%),
            ISNUMBER(SEARCH("Subordinate",F11)),
            (H11*0%),
            R11<1,
            (H11*($C$7/10000)),
            H11*R11)))
    

    【讨论】:

    • 感谢 Monofuse,但公式中有语法错误,我无法检测到,所以 excel 不接受,您可以直接从您的 excel 复制重新发布吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2011-04-12
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2014-09-04
    相关资源
    最近更新 更多