Powerpivot一对多过滤柱

时间:2015-07-15 20:51:57

标签: powerpivot dax

我有2个表,一个访问表,然后是诊断表。访问是我的,诊断是我的很多(你可以有二级和三级诊断)。 我在访问表中创建了50多个度量。因此,我只想在我的访问表上以列的形式创建一个标志,该列将根据“诊断”表中的选择过滤掉我的结果。我已经看到了使用= calculate([例如],DXCodes)的度量的公式,它们会将案例过滤到仅与DXCodes相关的那些并且这有效,但我不想要为此构建每一项措施。相反,我想要一个DXFlag,如果在Visit表中存在我从Diagnosis中选择的内容,则会将我的访问行标记为1。建议?如果这没有意义,我可以得到更具体的信息

enter image description here

1 个答案:

答案 0 :(得分:0)

对您的数据做一些假设,你可以有这样的表: enter image description here

如果您创建一个度量来挑选每个诊断:

[diag1]:=FIRSTNONBLANK(Visits[Primary Diag],1)
[diag2]:=FIRSTNONBLANK(Visits[Secondary Diag],1)
[diag3]:=FIRSTNONBLANK(Visits[Tertiary Diag],1)

然后添加此度量以标记您的访问行:

[Found]:=MAXX(ALLSELECTED(Diagnoses[Diagnosis]),IF(FIRSTNONBLANK(Diagnoses[Diagnosis],1)=[Diag1]||FIRSTNONBLANK(Diagnoses[Diagnosis],1)=[Diag2]||FIRSTNONBLANK(Diagnoses[Diagnosis],1)=[Diag3],1,BLANK()))

这会给你这个结果:

enter image description here

编辑:对修订/澄清要求的回应

我一直试图看看我是否可以获得一个计算列来考虑诊断选择但收效甚微。使用度量进行操作非常简单:

[Diag Flag]:=IF(CALCULATE(COUNTROWS(DiagnosisTable),FIRSTNONBLANK(DiagnosisTable[Diagnosis],1))>0,1)

但是这种方法需要您修改您希望在输出摘要中显示的所有度量。如果它只是访问总次数和逗留时间的总和,那并不困难,但如果你需要修改所有50个措施,那就不那么有吸引力了。

以下是我在同一张表单独的数据透视表中显示的访问次数和停留时间的新指标:

[Cases]:=SUMX('Visits',[Diag Flag])
[LengthSum]:=SUMX('Visits',Visits[Length of Stay]*[Diag Flag])

输出:

enter image description here

注意:我的切片器连接到两个表。