我有一些以英镑、单位和美元为单位的销售数据。我从 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 语句相互分开。