Powerbi DAX:避免ALL()导致矩阵中维度属性显示不正确
在回答了我的问题后,我发现自己面临着一个新的、不同的问题,我在这个新问题中请求您的帮助: 1.脚本: 我们有一个由一个事实表(Powerbi DAX:避免ALL()导致矩阵中维度属性显示不正确,powerbi,dax,Powerbi,Dax,在回答了我的问题后,我发现自己面临着一个新的、不同的问题,我在这个新问题中请求您的帮助: 1.脚本: 我们有一个由一个事实表(F_访问)和一个维度D_日历组成的模型。 F_visions是事实表,包含客户对服装店的所有访问。其字段为: 访问Id:增量唯一编号,它是表的自然键 客户密钥:客户的唯一标识符 Calendar Fk:事实表中维度D_Calendar的外键 +----------+--------------+-------------+ | Visit Id | Customer Ke
F_访问
)和一个维度D_日历
组成的模型。
F_visions
是事实表,包含客户对服装店的所有访问。其字段为:访问Id
:增量唯一编号,它是表的自然键客户密钥
:客户的唯一标识符
Calendar Fk
:事实表中维度D_Calendar
的外键
+----------+--------------+-------------+
| Visit Id | Customer Key | Calendar FK |
+----------+--------------+-------------+
| 1 | John | 20170101 |
| 2 | John | 20180101 |
| 3 | John | 20180101 |
| 4 | John | 20190101 |
| 5 | Mark | 20170101 |
| 6 | Mark | 20180101 |
| 7 | Jack | 20190101 |
+----------+--------------+-------------+
2.目标:
创建一个时间智能年至今度量值,该度量值:
-不考虑维度日历上的切片器选择
-统计本年度迄今为止访问该商店的不同患者的数量
-保持与D_Calendar
的交互,这样我就可以从该维度正确地包含在矩阵属性中
3.预期结果:
不考虑D_Calendar
上的切片器过滤器(例如D_Calendar[年份]=2017)
我们得到以下结果:
+----------+-------------+-------------+-------------+------------------+
| Visit Id | Customer Key| Calendar FK | Measure YTD | D_Calendar[Year] |
+----------+-------------+-------------+-------------+------------------+
| 4 | John | 20190101 | 1 | 2019 |
| 7 | Jack | 20190101 | 1 | 2019 |
+----------+-------------+-------------+-------------+------------------+
4.现状
问题是矩阵中的D_日历[年]
取切片器的值,
而不是与F_访问[Calendar FK]
相关的值
其中,计量YTD定义为:
Measure YTD =
VAR vDateFrom = 20190101
VAR vDateTo = VALUE ( FORMAT ( ( TODAY () ), "YYYYMMDD" ) )
RETURN
CALCULATE (
DISTINCTCOUNT ( 'F_Visits'[Customer Key] ),
ALL ( D_Calendar ),
KEEPFILTERS ( D_Calendar[Year] ),
FILTER (
ALL ( 'F_Visits'[Calendar FK] ),
'F_Visits'[Calendar FK] >= vDateFrom
&& 'F_Visits'[Calendar FK] <= vDateTo
)
)
测量年初至今=
VAR vDateFrom=20190101
VAR vDateTo=VALUE(格式((今天(),“yyyyymmdd”))
返回
算计(
DISTINCTCOUNT(‘F_访问’[客户密钥]),
全部(迪乌日历),
保留过滤器(D_日历[年]),
滤器(
所有(‘F_访问’[日历FK]),
“F_访问”[Calendar FK]>=vDateFrom
&&“F_访问”[日历FK]您希望维度表不被该表上的切片器过滤?为什么希望切片器什么都不做?我想要两件事:1.筛选D_日历的切片器在计算度量YTD
2时不得有任何影响。添加到可视化中的D_日历字段必须是由relati定义的字段使用Calendar FK在事实和维度之间的关系。我清楚了吗?您希望维度表不被该表上的切片器过滤?为什么希望切片器什么都不做?我想要两件事:1.筛选D_Calendar的切片器在计算度量YTD
2.添加时D_Calendar的字段不得有任何影响进入可视化的数据必须是使用日历FK由事实和维度之间的关系定义的数据。我清楚了吗?
Measure YTD =
VAR vDateFrom = 20190101
VAR vDateTo = VALUE ( FORMAT ( ( TODAY () ), "YYYYMMDD" ) )
RETURN
CALCULATE (
DISTINCTCOUNT ( 'F_Visits'[Customer Key] ),
ALL ( D_Calendar ),
KEEPFILTERS ( D_Calendar[Year] ),
FILTER (
ALL ( 'F_Visits'[Calendar FK] ),
'F_Visits'[Calendar FK] >= vDateFrom
&& 'F_Visits'[Calendar FK] <= vDateTo
)
)