复杂的IF语句返回false

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂的IF语句返回false相关的知识,希望对你有一定的参考价值。

我正在使用此长IF语句来计算销售人员的佣金率。 if值为true的部分有效,而false的值为单元格中返回FALSE,而不是执行false指令(在这种情况下为(IF(R11<1,(H11*($C$7/10000)),H11*R11))。也许公式的“假”部分中不能再有一个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语句的展开版本。

=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)))

以上是关于复杂的IF语句返回false的主要内容,如果未能解决你的问题,请参考以下文章

复杂的条件和不可达的语句

PHP常用代码片段

if语句总是在字符串比较时返回false [重复]

If语句在While True循环(Python)中返回False

Javascript 在 if 语句中返回 false

如何检查方法在 Java 的 IF 语句中返回 true 还是 false?