PowerBI:计算新列中每个 ID 和每个周期的唯一子 ID

PowerBI: Count unique sub-ID's per ID and per period in a new column

我 运行 遇到了定义新列的问题,希望您能帮助我。我想用 2 轴上的过滤器计算一列(子 ID)的不同值;期间和ID。我想对每一行都这样做,并将结果 post 作为一个新列。随着时间的推移,我在子 ID 级别构建了数据。身份证也有说明。我的数据如下所示:

Period ID Sub-ID
202101 123000 01
202101 123000 02
202101 123000 03
202102 123000 01
202102 123000 02
202102 123000 03
202101 456000 01
202101 456000 02
202102 456000 01
202102 456000 02

在这里,我想每行添加一列,说明有多少子 ID 属于该特定期间的 ID。因此,对于新列,我的数据应该如下所示:

Period ID Sub-ID Number of sub-ID's
202101 123000 01 3
202101 123000 02 3
202101 123000 03 3
202102 123000 01 3
202102 123000 02 3
202102 123000 03 3
202101 456000 01 2
202101 456000 02 2
202102 456000 01 2
202102 456000 02 2

我会分享我尝试过的代码,但我不确定我之前的尝试是否已经足够接近预期的结果。我尝试使用 CALCULATE 函数,但无法对 ID 和 Period 进行正确的过滤。我希望有人能帮助我,在此先感谢!

您可以通过 DAX 中的 SUMMARIZE 函数执行此操作

Table = SUMMARIZE(Data, Data[Period], Data[ID], Data[Sub-ID], "Distinct Count", CALCULATE(COUNTROWS(DISTINCT(Data[Sub-ID])), ALL(Data[Sub-ID])))

如果要向数据集添加列,可以添加此计算列,如果要将结果用作切片器或维度,这将非常有用:

Number of Sub IDs = 
CALCULATE ( 
    COUNTROWS ( 'Table' ) , 
    ALLEXCEPT (
        'Table' , 
        'Table'[Period],
        'Table'[ID]
    )
)

您可以在 measure 中使用相同的代码在 table 视觉对象中显示它,而无需在数据模型中用完 space: