Date Dax和Power BI、默认和切片器

Date Dax和Power BI、默认和切片器,date,filter,powerbi,dax,default,Date,Filter,Powerbi,Dax,Default,我正在尝试为用户设置一个默认显示当前数据的报告 但我也希望与我分享这份报告的人能够选择从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", "N

我正在尝试为用户设置一个默认显示当前数据的报告

但我也希望与我分享这份报告的人能够选择从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])
然后进入模型视图,在日期字段上创建SlicerDate表和日期表之间的关系

现在对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\u Today\u Default”自动显示“yes”,让所有记录都通过您在可视屏幕上的过滤器。但是,它们将被筛选下来的日期,你刚刚选择在切片机!这样,用户就可以控制所选日期

当切片器中未选择日期时,“date\u Today\u Default”逻辑将落入IF DateToday=CurrentRow语句中,并且仅标记一行“YES”。您在visual Studio上的筛选器将忽略所有其他记录


希望它能有所帮助

我应用了DAX并创建了关系,但我不明白为什么“Date\u Today\u Default”对所有日期都不说“no”,即使是今天。如果您有一个日历表,它有一个计算列,检查表中的Date=NOW(),以及if语句是否返回Y或N,然后在Y上过滤数据集,报告中的所有内容都将显示最新日期。使用书签显示当前日期或用户选择的谢谢。但在这种情况下,用户无法从其他可能的日期中筛选和选择日期?如果您有两个书签,则可以将其中一个书签与应用了当前日期的筛选器一起使用,另一个书签将删除筛选器,并且您可以使日历切片器与书签一起显示/消失,因此它仅在您想要选择特定日期时显示