首页 > 解决方案 > DAX 度量未删除筛选列

问题描述

我有一个名为 Data 的事实表和一个名为 DM_AgeGrouping 的维度表。它们如下所示,并与 RecordID 列相连。

请注意,对于数据表中的 recordID,我在“DM_AgeGrouping”中只包含了 2 条记录

DM_AgeGrouping

RecordID    FID  OID    AgeGrouping ValidrecordBit
12          36   324       3-5             1
12          36   324       6-11            0
12          34   324       12-14           0
12          35   324       15-19           0
12          36   324       20-29           0
13          36   324       3-5             0
13          36   324       6-11            1
13          34   324       12-14           0
13          35   324       15-19           0
13          36   324       20-29           0

数据 在此处输入图像描述

我有一个简单的措施,它对 DM_agegrouping 表中的 Agegroup 的有效记录位求和。如下:

AgeGroup = CALCULATE(sum(DM_AgeGrouping[ValidrecordBit]))
OageGroup = CALCULATE(sum(DM_AgeGrouping[ValidrecordBit]) ,ALL(Data[FID]))
NageGroup = CALCULATE(sum(DM_AgeGrouping[ValidrecordBit]),ALL(Data[FID],Data[OID]))

当我创建一个由 [AgeGrouping]、[Agegroup]、[Oagegroup]、[Nagegroup] 组成的表格视觉对象时。我得到了预期的结果。每个年龄组和有效位组合都存在,并且测量正确地对有效记录位求和。

结果表视觉

在此处输入图像描述

当我对“OID”和“FID”使用切片器(如 FID = 36 和 OID = 324)时,我确实得到了如下预期结果,该结果具有正确的 F/O/N 年龄组值。

使用过滤器/切片器(FID = 36 和 OID = 324) 在此处输入图像描述

但是当我使用具有上述组合的其他过滤器/切片器时,例如在 1 到 7 之间包含切片器“LengtheOFstay”

我没有得到 N/O 年龄组 DAX 列的预期结果。据我了解,这是由于 AutoExist 功能没有对不同表中的列进行操作并有效地创建交叉连接造成的。

使用过滤器/切片器得到的输出(FID = 36 和 OID = 324 和 1 到 7 之间的“LengtheOFstay”) 在此处输入图像描述 如何编写度量以得到以下结果,其中显示正确的 N 和 O 年龄组值?

我发现很多文章解释了这个“功能”,但没有解释如何绕过它。

期望的结果视觉

在此处输入图像描述

简单来说,停留时间在 1 到 7 之间,我们有 6 个具有不同 FID 和 OID 的总记录 ID,我需要 N/O 年龄组来为所选的 FID/OID 显示 6 个。

标签: powerbidaxpowerbi-desktop

解决方案


推荐阅读