Power BI: 表格显示切片器选中时间之前的数据

文章讲述了在PowerBI中处理YearList和Caleadar两个表的关联关系,以实现当切片器选择特定年份时,列表显示该年份及其之前的所有数据。通过创建新的度量值IsShow,判断当前行年份是否小于或等于选中的年份,然后将此度量值作为表格筛选器,达到预期效果。这种方法避免了传统关联关系的局限性,并提供了更灵活的筛选体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例如下面的例子,Year List表和Caleadar表是1对多的关联关系。

Caleadar表:

Caleadar = 
VAR StartYear = YEAR(NOW())-5
VAR EndYear = YEAR(NOW())+5
RETURN
ADDCOLUMNS (
    CALENDAR (DATE(StartYear,1,1), DATE(EndYear,12,31)),
    "Year", YEAR ([Date]),
    "Date_Key",value(FORMAT([Date], "YYYYMMDD")),
    "Month", MONTH([Date]),
    "Month Name",FORMAT([Date],"MMMM"),
    "Day",DAY([Date]),
    "Year Month", VALUE(FORMAT([Date], "YYYYMM")),
    "Week", WEEKDAY ([Date],2),
    "Month Abbr",FORMAT([Date],"MMM"),
    "Weekday Abbr",FORMAT([Date],"DDD"),
    "Quarter",QUARTER([Date]),
    "Quarter Name","Q" & CONVERT(QUARTER([Date]),STRING)
)

Year List表:

Year List = SELECTCOLUMNS(
    GENERATESERIES(2018, 2028, 1),
    "Year",[Value]
)

关联关系:Year字段1对多

报表显示

 这种通过关联关系做筛选的做法比较局限,只有被选中的数据才能被筛选出来。

现在想要做的是:当切片器选择某一年份时,列表中显示这一年份及这年之前的数据。

做法

1. 去掉这两个表之间的关联关系

 2. 新建一个度量值,用来判断当前列表中每一行的Year是否小于或等于切片器选中的Year

Is Show = 
// 切片器选中的Year
VAR SelectedYear = SELECTEDVALUE('Year List'[Year])
// 对应当前列表中的每一行的Year
VAR CurrentYear = SELECTEDVALUE('Caleadar'[Year])
// 当前行的Year小于或等于切片器选中的Year则返回Y,否则返回N
RETURN IF(CurrentYear <= SelectedYear,"Y","N")

3. 将度量值放到表格的筛选器中

鼠标选中表格 --> 将[Is Show]度量值拖拽到“此视觉对象上的筛选器”上 --> 筛选器下拉框选择“等于”,文本框中填入“Y” --> 点击“应用筛选器”

这样就完成了,切片器选择2020年,列表中显示的是2020年及之前的数据。

 总结

1. 用作筛选器的度量值最好返回的是一个字符型的值,之前尝试过返回TRUE()或FALSE(),但发现这样无法绑定到列表的筛选器上。

2. 可以点击下面这个按钮将筛选器隐藏掉,这样发布到Power BI Service上就看不见这个筛选器;

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值