Power BI 相对日期切片器

Power BI Relative Date Slicer

提问人:Mr. Hobo 提问时间:9/18/2023 最后编辑:Mr. Hobo 更新时间:9/18/2023 访问量:58

问:

我需要创建一个动态表,该表根据预定义的日期选择从原始事务表中筛选某些记录。事务表 () 的结构如下: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

cfg_date_group_frequency table

我创建了以下附加度量值来筛选数据,如下所示:

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])

power bi dashboard with dynamic selectedvalues

据我所知,这是一种非常标准和直接的方法,但我不确定我做错了什么。我的问题:

  1. 为什么表格没有被筛选?
  2. 有没有更好的方法来实现这一目标?

编辑:请查找示例屏蔽文件:https://github.com/ZenithClown/SO-77125934.pbix

PowerBI DAX PowerBI-Desktop 数据筛选

评论


答:

2赞 Davide Bacci 9/18/2023 #1

如果没有样本 .pbix 就很难诊断,但似乎有更简单的方法可以实现您的目标。为什么不直接使用选中了“相对日期”选项的日期切片器?

enter image description here

enter image description here

评论

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
明白了,所以大多数日期切片器是目前最可行的解决方案!