Dax和Power BI,默认和切片器

问题描述 投票:0回答:1

我正在尝试为用户创建一份报告,默认情况下会显示今天的数据。

但是我也希望与之共享报告的人能够选择从70年代到2043年的数据。

我目前设法在DAX中设置报告过滤器:

Date_Today_Default = 
var currentrowdate = FORMAT('Date'[DATE], "dd/mm/yyyy")
var DateToday = FORMAT(TODAY(),"dd/mm/yyyy")
return
IF(DateToday = currentrowdate, "YES", "NO")

但是我想让用户有可能在报告打开时看到默认值,并且还可以对报告进行切片。在这种情况下,如果在我的过滤器中选择“是”,则用户无法更改日期。

在Power BI中可以这样做吗?

date filter powerbi dax default
1个回答
0
投票

您可以利用ISFILTERED函数为您提供类似的行为。

首先创建一个新的表,它将用于切片器中的值

SlicerDate = SELECTCOLUMNS('Date', "Date",[Date])

然后进入模型视图,在Date字段上的SlicerDate表和Date表之间创建关系。

现在对您的dax进行以下小的更改。

Date_Today_Default = 
var currentrowdate = FORMAT(Max('Date'[Date]), "dd/mm/yyyy")
var DateToday = FORMAT(TODAY(),"dd/mm/yyyy")
return
IF (isFiltered(SlicerDate[Date]), "YES", IF (DateToday = currentrowdate, "YES", "NO"))

创建切片器视觉效果,并将SlicerDatetable中的日期字段带入其值。

[当您在切片器中选择日期时,将使'Date_Today_Default'对所有记录自动显示'是',并使所有记录通过视觉上的过滤器。但是,它们会根据您在切片器中刚刚选择的日期被过滤掉!这样您的用户就可以控制所选的日期。

当在切片器中未选择任何日期时,'Date_Today_Default'逻辑将属于IF DateToday = CurrentRow语句,并且仅将一行标记为'YES'。视觉上具有的过滤器将忽略所有其他记录。

enter image description here

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.