PowerBI 查询不适用于日期过滤器
PowerBI query doesn't work with date filter
我有这个 DAX:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
IF (
'Data for Pivot'[Date] <= d
&& 'Data for Pivot'[Act Rem] = "Actual Units"
&& 'Data for Pivot'[Type] = "Current",
'Data for Pivot'[Value],
0
)
'P6 Update'[Date]
附加到切片器(单个 select 日期下拉列表)。
我看到日期设置正确,但是当我尝试使用日期进行过滤时它不起作用。
如果我这样做:
Earned Daily =
IF (
'Data for Pivot'[Date] <= DATE ( 2018, 4, 19 )
&& 'Data for Pivot'[Act Rem] = "Actual Units"
&& 'Data for Pivot'[Type] = "Current",
'Data for Pivot'[Value],
0
)
数据过滤正确。
原代码有什么问题?
#######
注意:P6 更新 table 是使用以下代码创建的:
P6 Update = CALENDAR(MIN('Data for Pivot'[Date]), MAX('Data for Pivot'[Date]))
您的 DAX 公式似乎是计算列而不是度量。由于计算列仅在每次加载 table 时计算一次,因此它们无法响应切片器或任何类型的动态过滤。
解决方案是编写一个度量来生成您想要的值。它看起来像这样:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
CALCULATE (
SUM ( 'Data for Pivot'[Value] ),
'Data for Pivot'[Date] <= d,
'Data for Pivot'[Act Rem] = "Actual Units",
'Data for Pivot'[Type] = "Current"
)
您可能需要根据尝试使用此度量的上下文进行调整,但这是基本方法。
根据@Alexis Olson 的回答,我整理了这个完全符合我要求的答案:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
CALCULATE (
SUM('Data for Pivot'[Value] ),
FILTER(ALLSELECTED('Data for Pivot'),'Data for Pivot'[Date]=MAX('Data for Pivot'[Date])),
'Data for Pivot'[Date] <= d,
'Data for Pivot'[Act Rem] = "Actual Units",
'Data for Pivot'[Type] = "Current"
)
Added FILTER which makes it match Date by Date
until 'P6 Update'[Date]
is reached.
我有这个 DAX:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
IF (
'Data for Pivot'[Date] <= d
&& 'Data for Pivot'[Act Rem] = "Actual Units"
&& 'Data for Pivot'[Type] = "Current",
'Data for Pivot'[Value],
0
)
'P6 Update'[Date]
附加到切片器(单个 select 日期下拉列表)。
我看到日期设置正确,但是当我尝试使用日期进行过滤时它不起作用。
如果我这样做:
Earned Daily =
IF (
'Data for Pivot'[Date] <= DATE ( 2018, 4, 19 )
&& 'Data for Pivot'[Act Rem] = "Actual Units"
&& 'Data for Pivot'[Type] = "Current",
'Data for Pivot'[Value],
0
)
数据过滤正确。
原代码有什么问题?
#######
注意:P6 更新 table 是使用以下代码创建的:
P6 Update = CALENDAR(MIN('Data for Pivot'[Date]), MAX('Data for Pivot'[Date]))
您的 DAX 公式似乎是计算列而不是度量。由于计算列仅在每次加载 table 时计算一次,因此它们无法响应切片器或任何类型的动态过滤。
解决方案是编写一个度量来生成您想要的值。它看起来像这样:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
CALCULATE (
SUM ( 'Data for Pivot'[Value] ),
'Data for Pivot'[Date] <= d,
'Data for Pivot'[Act Rem] = "Actual Units",
'Data for Pivot'[Type] = "Current"
)
您可能需要根据尝试使用此度量的上下文进行调整,但这是基本方法。
根据@Alexis Olson 的回答,我整理了这个完全符合我要求的答案:
Earned Daily =
VAR d = SELECTEDVALUE ( 'P6 Update'[Date] )
RETURN
CALCULATE (
SUM('Data for Pivot'[Value] ),
FILTER(ALLSELECTED('Data for Pivot'),'Data for Pivot'[Date]=MAX('Data for Pivot'[Date])),
'Data for Pivot'[Date] <= d,
'Data for Pivot'[Act Rem] = "Actual Units",
'Data for Pivot'[Type] = "Current"
)
Added FILTER which makes it match Date by Date until
'P6 Update'[Date]
is reached.