获得#NUM!对于PowerPivot测量中IF语句划分的外巢

时间:2014-03-13 20:44:43

标签: excel-2010 powerpivot dax

我有一些销售数字,我的价值是英镑,单位和美元。从PowerPivot,我创建了一个带有Periods列(Current Week,MTD,QTD,YTD)和" Measure"的子列的数据透视表。 (美元,英镑,单位)。我使用的计算得到了给定期间和度量的今年值与去年相同期间和度量的值之间的百分比差异,例如([MTD今年] - [MTD去年])/ [MTD去年]。

为此,我在我的数据表旁边的PowerPivot中添加了一列Period表和一列Measure表,没有为Data创建关系。我将这些用于我的列值,并使用嵌套的IF语句来确定如何处理哪些Periods和Measures。

我用来获得今年和去年的价值的措施运行得很好。但是当我进行分工时,我得到#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"对于所有价值观。相反,它返回#NUM!对于所有当前周和MTD值以及" 1"对于其余的。如果我重新排列嵌套参数,#NUM!始终返回外部参数。

知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方案,虽然我不清楚为什么这个有效,而另一个结构却没有。以下是我的设置方式:

=
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语句相互分开。