MDX 确定度量值是数字还是百分比值

MDX determine if measure is a number or percentage value

有没有办法确定度量值是数字还是百分比?

我在 excel 主元中有一个计算成员,其中从当前年份值中减去上一年的值得到方差。

计算示例:

[Product Date].[Fiscal Date].&[1415]-[Product Date].[Fiscal Date].&[1314]

我想做的是获取方差百分比,为此我只需要从当前的百分比值中减去上一年的值。当该值为数字时,我需要从当前值中减去上一年的值,然后将其除以上一年的值。

那么有没有办法确定我什么时候需要除以该值或只做减法?

SSAS 引擎不使用 % 运算符存储百分比值。也就是说,不存在"percentage".

这样的数据类型

因此,85% 在引擎中存储为 0.85。

没有什么好的方法可以查看 0.85 并确定它是 85% 还是值 .85。因此,如果在您的情况下,这些值可能是小数,那么祝您好运! 但是,如果它们总是整数,可以使用一个小技巧(我最近从 GregGalloway's answer 中学到的)。

with member measures.MeasureType as
TypeName([Measures].[SomeMeasure])

member measures.ActionTakenOnSomeMeasure as
IIF
 (
  measures.MeasureType = "Double", //Check if the value is double, i.e. Percentage
  [Measures].[SomeMeasure] - ([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure]),
  ([Measures].[SomeMeasure] - ([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure]))/([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure])
 )

select measures.ActionTakenOnSomeMeasure on 0,
[Date].[Year].&[2014]
from [SomeCube]

也可能存在值通常总是大于 1 的情况。在这种情况下,您可以简单地在 IIF 子句中额外检查度量值。