首页 > 解决方案 > 复杂的 IF 语句返回 false

问题描述

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

如果主要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-statementexcel-formula

解决方案


对于访问此页面的任何其他人。这是作者 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)))

推荐阅读