如何忽略表格模型中的关系

时间:2017-11-21 15:19:30

标签: dax ssas-tabular

我有一个我无法解释的问题。考虑以下DAX指标:

Actual Spend :=
CALCULATE (
    SUM ( 'Finance Actuals'[Amount] ),
    FILTER (
        ALLSELECTED ( 'Finance Period' ),
        'Finance Period'[Fiscal_Date_Key] <= MAX ( 'Finance Period'[Fiscal_Date_Key] )
    ),
    FILTER (
        'Finance Actuals',
        'Finance Actuals'[Calculated_Date_Key]
            <= MAX ( 'Finance Forecasting Period'[Calculated_Date_Key] )
    ),
    ALL ( 'Finance Calculated Data Snapshot Date' )
)

财务实际与&#39;之间存在关系。和&#39;财务计算数据快照日期&#39;。出于此措施的目的,我想忽略该关系并使用在不同表格中选择的预定义日期(&#39;财务预测期&#39;)。

一切正常,但该措施仍然受到“财务计算数据快照日期”变更的影响。我原本预计,添加度量的所有(&#39;财务计算数据快照日期&#39;)部分应该会导致忽略该表的更改。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

CALCULATE函数将使用AND逻辑应用其过滤器。我猜测正在发生的事情是在FILTER上的'Finance Actuals'函数中使用了该关系,添加ALL函数不会改变任何内容。

尝试在第二个ALL函数中移动FILTER函数,因为这是需要应用它的位置。

答案 1 :(得分:0)

谢谢Alexis。

我不太确定如何将ALL添加到定义的第二个过滤器中,因为它们与不同的表有关。但是,根据您的建议,我将该措施重新修改如下:

Actual Spend at Forecasting Period:=CALCULATE (
    SUM ( 'Finance Actuals'[Amount] ),
    FILTER (
        ALLSELECTED ( 'Finance Period' ),
        'Finance Period'[Fiscal_Date_Key] <= MAX ( 'Finance Period'[Fiscal_Date_Key] )
    ),
    FILTER (
        ALL('Finance Calculated Data Snapshot Date'),
        'Finance Calculated Data Snapshot Date'[Calculated_Date_Key]
            <= MAX ( 'Finance Forecasting Period'[Calculated_Date_Key] )
    )
)

这有效并达到了我希望的结果,所以感谢你的建议。但是,我仍然对你的具体建议感到好奇

  

尝试移动第二个FILTER功能中的ALL功能   这就是它需要应用的地方。