繁体   English   中英

Dax 和 Power BI,默认和切片器

[英]Dax and Power BI, default and slicer

我正在尝试为默认显示今天数据的用户设置报告。

但我也希望与报告共享的人能够选择从 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 function 为您提供这样的行为。

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

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

然后 go 进入您的 model 视图,并在日期字段上创建 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 语句中,并且仅将一行标记为“是”。 您对视觉对象的过滤器将忽略所有其他记录。

在此处输入图像描述

希望能帮助到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM