首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerPivot - DAX -预算分析-总计不正确

PowerPivot - DAX -预算分析-总计不正确
EN

Stack Overflow用户
提问于 2017-04-24 12:50:54
回答 1查看 272关注 0票数 1

我刚开始使用PowerPivot和DAX,在一个我至今无法解决的常见问题上,我正在寻求帮助->将实际数据/事实与预算和大总错行之和进行比较。这就是模型

这就是预算数据的样子

实际数据(例如TY TW单元)来自预订详细信息表,该表的列与TicketTypeId、ResourceTypeId和DateId相似。这是订票明细表。它没有DateId列,但是链接的TripId列在其表中有指向日期的链接。

我们在资源类型层次结构和票证类型层次结构的级别1之间设置了一个枢轴表。

这是方差的公式:

代码语言:javascript
复制
TY TW Units v Budget Units TY TW $ :=
CALCULATE ( 'Booking Details'[TY TW UNITS] - [Budget Units TY TW] )

我们希望达到的目标是:

1)如果没有预算,不要计算差异(TY TW单位与预算单位TY TW $ Var)。

2)大额总额应计算为方差输出的总和。

最后一点是最棘手的,因为我只得到了这个结果。

总数是不正确的,因为基础数据没有被过滤,在这种情况下,我不知道该如何做。

我在本例中使用的方差更新公式:

代码语言:javascript
复制
TY TW Units v Budget Units TY TW $ :=
CALCULATE (
    IF (
        ISBLANK ( [Budget Units TY TW] ),
        BLANK (),
        'Booking Details'[TY TW UNITS] - [Budget Units TY TW]
    )
)

数据在资源类型或票证类型之一的预订细节中具有空值(并非在所有情况下都是如此,但我觉得值得提及),但始终存在日期id。

任何帮助都是非常感谢的。

谢谢。

附注:

这是我为TY TW预算单位制定的公式:

代码语言:javascript
复制
Budget Units TY TW :=
CALCULATE (
    IF (
        Parameters[Filter Calendar Type] = "Fiscal",
        CALCULATE (
            SUM ( 'Budgets'[Vehicles] ) + SUM ( 'Budgets'[Passengers] ),
            Dates[Fiscal Year] = VALUES ( Parameters[Current Fiscal Year] ),
            Dates[Fiscal Week] = VALUES ( Parameters[Current Fiscal Week] )
        ),
        CALCULATE (
            SUM ( 'Budgets'[Vehicles] ) + SUM ( 'Budgets'[Passengers] ),
            Dates[Calendar Year] = VALUES ( Parameters[Current Calendar Year] ),
            Dates[Calendar Week] = VALUES ( Parameters[Current Calendar Week] )
        )
    )
)

这是TY TW单位的公式:

代码语言:javascript
复制
TY TW UNITS :=
IF (
    Parameters[Filter Calendar Type] = "Fiscal",
    CALCULATE (
        [TRAFFIC UNITS],
        Dates[Fiscal Year] = VALUES ( Parameters[Current Fiscal Year] ),
        Dates[Fiscal Week] = VALUES ( Parameters[Current Fiscal Week] )
    ),
    CALCULATE (
        [TRAFFIC UNITS],
        Dates[Calendar Year] = VALUES ( Parameters[Current Calendar Year] ),
        Dates[Calendar Week] = VALUES ( Parameters[Current Calendar Week] )
    )
)

这取决于交通单位,其公式是:

代码语言:javascript
复制
TRAFFIC UNITS :=
CALCULATE ( SUM ( [UnitCount] ), 'Booking Details'[Checked In] = TRUE () )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 08:14:58

通过一个额外的措施来解决这个问题,这基本上是不同的。

代码语言:javascript
复制
Diff TY TW Units v Budget Units TY TW:=SUMX (
    FILTER ( 'Booking Details', ISBLANK ( [Budget Units TY TW] ) ),
     'Booking Details'[TY TW UNITS]
)

这是没有正确计算的“旧”计算。

代码语言:javascript
复制
TY TW Units v Budget Units TY TW var:=CALCULATE (
    'Booking Details'[TY TW UNITS] - [Budget Units TY TW],
    FILTER (
        'Budgets',
        (
            CALCULATE (
                SUM ( 'Budgets'[Passengers] ) + SUM ( 'Budgets'[Vehicles] )
            )
                > 0
        )
    )
)

这两种方法在实际测量中结合在一起,并向用户展示。

代码语言:javascript
复制
TY TW Units v Budget Units TY TW $:=CALCULATE(
    [TY TW Units v Budget Units TY TW var] + [Diff TY TW Units v Budget Units TY TW]
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43588544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档