提问人:Mr. Hobo 提问时间:9/18/2023 最后编辑:Mr. Hobo 更新时间:9/18/2023 访问量:58
Power BI 相对日期切片器
Power BI Relative Date Slicer
问:
我需要创建一个动态表,该表根据预定义的日期选择从原始事务表中筛选某些记录。事务表 () 的结构如下:vwProcurementDashboard
import_date | 群 | 数量 | 价值 |
---|---|---|---|
2021-01-01 | 一个 | 100 | 10 |
2021-01-01 | B | 100 | 15 |
2021-01-02 | 一个 | 110 | 10 |
2021-01-02 | B | 110 | 15 |
现在,我想使用切片器 (I) 最近一个月、(II) 最近 3 个月等过滤记录,我为其创建了一个配置表 (),如下所示:cfg_date_group_frequency
我创建了以下附加度量值来筛选数据,如下所示:
dynMonthValue =
// get the number value that needs to be subtracted to create a data filter
SWITCH(
TRUE(),
SELECTEDVALUE(cfg_date_group_frequency[DateGroupName]) == "Last 1 Month", 0,
SELECTEDVALUE(cfg_date_group_frequency[DateGroupName]) == "Last 3 Months", 2,
SELECTEDVALUE(cfg_date_group_frequency[DateGroupName]) == "Last 6 Months", 5,
SELECTEDVALUE(cfg_date_group_frequency[DateGroupName]) == "Last 12 Months", 11,
12 // this is the default number of data that should be returned
)
avlMaxDate =
// get the latest available date from the vwAnalyticsDashboard
MAX(vwProcuementDashboard[import_date])
dynFromDate =
// calculate the date from which the data needs to be filtered
VAR SelectedMonth = MONTH([avlMaxDate]) - [dynMonthValue]
VAR SelectedYear = YEAR([avlMaxDate]) - IF(SelectedMonth < 1, 1, 0)
RETURN
DATE(SelectedYear, IF(SelectedMonth < 1, 12 + SelectedMonth, SelectedMonth), 1)
dynFiltProcurementDashboard =
// dynamically fetch only the selected times from the table
RETURN
FILTER(
vwProcuementDashboard,
vwProcuementDashboard[import_date] >= [dynFromDate]
)
但是,当我检查数据时,记录不会被过滤。但是,我已经单独检查了所有其他值是否正确填充。MIN(dynFiltProcurementDashboard[import_date])
据我所知,这是一种非常标准和直接的方法,但我不确定我做错了什么。我的问题:
- 为什么表格没有被筛选?
- 有没有更好的方法来实现这一目标?
编辑:请查找示例屏蔽文件:https://github.com/ZenithClown/SO-77125934.pbix
答:
2赞
Davide Bacci
9/18/2023
#1
如果没有样本 .pbix 就很难诊断,但似乎有更简单的方法可以实现您的目标。为什么不直接使用选中了“相对日期”选项的日期切片器?
评论
0赞
Mr. Hobo
9/18/2023
这看起来是一个巧妙的方法,但我想根据事务表中的最后一个可用日期自动过滤数据!
0赞
Davide Bacci
9/18/2023
如果你有一个示例.pbix,我可以看看,否则变量太多了。
0赞
Mr. Hobo
9/18/2023
我正在处理一个公司文件,让我在示例 .pbix 文件中复制相同的文件,并在某个时间与您共享?
0赞
Davide Bacci
9/18/2023
只需在此处上传链接,我或其他人就会看一看。
0赞
Mr. Hobo
9/18/2023
请在 github.com/ZenithClown/SO-77125934 找到该文件
1赞
Davide Bacci
9/18/2023
#2
我想我明白了。如果你问为什么计算表不对切片器做出反应,那是因为计算表只在刷新时计算一次。它们不会响应切片器或您在表定义中输入的内容以外的任何内容。
评论
0赞
Mr. Hobo
9/18/2023
明白了,所以大多数日期切片器是目前最可行的解决方案!
评论