You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerBI中创建基于列最大值的自动页面级周过滤器?

解决PowerBI动态筛选当前周/上周的可行方案

方案1:Power Query加载时动态筛选(推荐,直接缩减数据量)

这个方法在数据加载到模型前完成筛选,从根源减少数据量,无需计算列或度量值参与页面筛选:

  • 打开Power Query编辑器,选中包含Week列的表
  • 在公式栏输入以下M代码,替换你的数据源为实际数据源名称:
    let
        Source = 你的数据源,
        currentWeek = Date.WeekOfYear(DateTime.LocalNow()),
        lastWeek = currentWeek - 1,
        filteredTable = Table.SelectRows(Source, each [Week] = currentWeek or [Week] = lastWeek)
    in
        filteredTable
    
  • 关闭并应用设置,模型中仅保留当前周和上周的数据,报表每日刷新时会自动重新计算周数并完成筛选。

方案2:用动态计算表作为页面过滤器数据源

若需保留全量数据但仅在页面筛选当前/上周,可创建动态计算表作为筛选器选项:

  • 在「建模」选项卡点击「新建表」,输入以下DAX公式(参数2表示周一为一周起始,可按需调整):
    DynamicWeekFilter = 
    VAR CurrentWeek = WEEKNUM(TODAY(), 2)
    VAR LastWeek = CurrentWeek - 1
    RETURN
    DATATABLE (
        "FilterWeek", INTEGER,
        {
            {CurrentWeek},
            {LastWeek}
        }
    )
    
  • 将计算表的FilterWeek字段拖到页面级过滤器,设置筛选条件为「等于」并勾选所有值
  • 建立DynamicWeekFilter[FilterWeek]与原表Week列的关系,每日刷新时计算表会自动更新周数,过滤器同步生效。

方案3:视觉对象级筛选结合度量值

若必须保留全量数据且不想用计算表,可在视觉对象筛选器中用度量值控制:

  • 创建如下度量值:
    IsCurrentOrLastWeek = 
    VAR CurrentWeek = WEEKNUM(TODAY(), 2)
    VAR LastWeek = CurrentWeek - 1
    RETURN
    IF(MAX('你的表'[Week]) = CurrentWeek || MAX('你的表'[Week]) = LastWeek, 1, 0)
    
  • 对每个视觉对象,打开「筛选器」面板,添加该度量值并设置条件为「等于1」,报表刷新时度量值会自动匹配最新周数。

内容的提问来源于stack exchange,提问作者feonyte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:11:25