DAX - 嵌套计算查询

时间:2018-04-04 14:20:08

标签: nested dax

我有一个大型数据文件(4.2行和10列),我尝试使用度量进行一些过滤。但是,当我尝试使用嵌套测量时,一切都会爆炸,我不确定为什么。

到目前为止,我有两个明确的措施:

MaxValue:=MAX('Element Forces - Area Shells'[Value])

MaxIndex:=
CALCULATE(
    FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
    FILTER(
        ALL('Element Forces - Area Shells' ),
        'Element Forces - Area Shells'[Value]=MAX('Element Forces - Area Shells'[Value])
    )
)

这有效,我得到了正确的值。但是,正如我所看到的,我应该能够将MaxValue度量放入MaxIndex度量中,但一切都会停止。

我想象的新措施应如下所示:

MaxIndex:=
CALCULATE(
    FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
    FILTER(
        ALL('Element Forces - Area Shells' ),
        'Element Forces - Area Shells'[Value]=[MaxValue])
    )
)

但它只是不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:0)

虽然我现在无法对其进行测试,但我认为它是由隐式上下文转换*引起的。当您在另一个度量中引用度量时,内部会涉及CALCULATE(),从而进行上下文转换。在这种情况下,这不是你想要的。我建议你使用变量,以创建一个度量:

MaxIndex:=
VAR MaxValue = MAX('Element Forces - Area Shells'[Value])
RETURN
CALCULATE(
    FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
    FILTER(
        ALL('Element Forces - Area Shells' ),
        'Element Forces - Area Shells'[Value] = MaxValue )
    )
)

注意:我不确定,如果我错了,请原谅我:)

此外,使用VAR,来自MSDN docs

  

此功能仅包含在SQL Server 2016 Analysis Services(SSAS),Excel 2016中的Power Pivot和Power BI Desktop中。此处提供的信息可能会有所变化。