如何在不同的粒度上进行不同的计算?
How to different calculation on different granularity?
我想实现以下目标:
想法是在以下场景中计算和积:
- 计算小计(即Level1粒度)公式为:Wieght2的sum * Amount.
- 计算总计时,公式为:Wieght1的总和*小计.
如何在 DAX 中实现这一点?!
这在一定程度上取决于您的数据模型的外观...
使用这样的模型:
您的 DAX 指标可能如下所示:
Weighted Amount =
SWITCH (
TRUE(),
ISINSCOPE ( Level2[Level 2] ),
SELECTEDVALUE ( Level2[Amount] ),
ISINSCOPE ( Level1[Level 1] ),
SUMX (
Level2,
Level2[Amount] * Level2[Weight 2]
),
SUMX (
Level1,
CALCULATE (
SUMX (
Level2,
Level2[Amount] * Level2[Weight 2]
)
) * Level1[Weight 1]
)
)
我们使用 SWITCH
和 ISINSCOPE
来确定评估度量的级别,然后遵循每个级别的业务逻辑。
我想实现以下目标:
想法是在以下场景中计算和积:
- 计算小计(即Level1粒度)公式为:Wieght2的sum * Amount.
- 计算总计时,公式为:Wieght1的总和*小计.
如何在 DAX 中实现这一点?!
这在一定程度上取决于您的数据模型的外观...
使用这样的模型:
您的 DAX 指标可能如下所示:
Weighted Amount =
SWITCH (
TRUE(),
ISINSCOPE ( Level2[Level 2] ),
SELECTEDVALUE ( Level2[Amount] ),
ISINSCOPE ( Level1[Level 1] ),
SUMX (
Level2,
Level2[Amount] * Level2[Weight 2]
),
SUMX (
Level1,
CALCULATE (
SUMX (
Level2,
Level2[Amount] * Level2[Weight 2]
)
) * Level1[Weight 1]
)
)
我们使用 SWITCH
和 ISINSCOPE
来确定评估度量的级别,然后遵循每个级别的业务逻辑。