IF 语句除法的外部嵌套获取 #NUM!

IF 语句除法的外部嵌套获取 #NUM!

我有一些以英镑、单位和美元为单位的销售数据。我从 PowerPivot 创建一个数据透视表,其中包含“期间”列(当前周、MTD、QTD、YTD)和“度量”子列(美元、英镑、单位)。我使用的计算方法获取给定“期间”和“度量”的今年值与相同“期间”和“度量”的去年值之间的百分比差异,例如,([今年的 MTD]-[去年的 MTD])/[去年的 MTD]。

为此,我在 PowerPivot 中的数据表旁边添加了一个单列的“期间”表和一个单列的“度量”表,这些表与数据之间没有关系。我将它们用作列值,并使用嵌套的 IF 语句来确定针对哪些“期间”和“度量”执行哪些操作。

我用来获取今年和去年值的测量方法运行良好。但当我进行除法时,我得到了 #NUM! 错误仅适用于 IF 语句的外层嵌套。我对此进行了尝试,并将公式简化为其基本部分(即,这是我的公式的简化):

=
(
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="Current Week",
        1,
        IF(
            VALUES(Periods[Period])="MTD",
            2,
            IF(
                VALUES(Periods[Period])="QTD",
                3,
                IF(
                    VALUES(Periods[Period])="YTD",
                    4
                )
            )
        )
    ),
    0

)
) 
/
(
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="Current Week",
        1,
        IF(
            VALUES(Periods[Period])="MTD",
            2,
            IF(
                VALUES(Periods[Period])="QTD",
                3,
                IF(
                    VALUES(Periods[Period])="YTD",
                    4
                )
            )
        )
    ),
    0
)
)

我期望它对所有值返回“1”。相反,它对所有当前周和 MTD 值返回 #NUM!,对其余值返回“1”。如果我重新排列嵌套参数,则始终对參數。

知道这里发生什么事了吗?

答案1

我想到了一个解决方案,尽管我不清楚为什么这个结构有效而另一个结构无效。以下是我设置它的方式:

=
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="YTD",
        DIVIDE(1,1),
        IF(
            VALUES(Periods[Period])="QTD",
            DIVIDE(2,2),
            IF(
                VALUES(Periods[Period])="MTD",
                DIVIDE(3,3),
                IF(
                    VALUES(Periods[Period])="Current Week",
                    DIVIDE(4,4)
                )
            )
        )
    ),
    0
)

我的建议是避免将两个嵌套的 IF 语句相互分开。

相关内容