我正在尝试为用户创建一份报告,默认情况下会显示今天的数据。
但是我也希望与之共享报告的人能够选择从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中可以这样做吗?
您可以利用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'。视觉上具有的过滤器将忽略所有其他记录。
希望有帮助