前途科技前途科技
  • 服务
  • 关于
  • AI
    • AI 大模型
    • 具身智能
    • 算力芯片
  • 科技
    • 智能终端
    • 软件·互联网
    • 汽车·出行
    • 科学前沿
  • 资源中心
    • 深度研究
      • AI 前沿
      • 教程
      • AI 知识库
      • 案例研究
    • 行业报告
      • 白皮书
      • 行业报告
      • 研究报告
      • 技术分享
      • 专题报告
    • 精选案例
      • 金融行业
      • 医疗行业
      • 教育行业
      • 零售行业
      • 制造行业
  • 服务
  • 关于
联系我们
教程/01.05 · 07:28/5 MIN/12 阅读

语义模型中日期筛选实战:如何灵活包含或排除未来数据

语义模型中日期筛选实战:如何灵活包含或排除未来数据 在数据分析报告中,经常会出现规划数据或上一年度数据延伸至未 […]

语义模型中日期筛选实战:如何灵活包含或排除未来数据

在数据分析报告中,经常会出现规划数据或上一年度数据延伸至未来日期的情况。然而,展示未来数据有时会造成混淆。如何通过一个切片器,让用户自主选择显示或隐藏未来数据?本文将详细介绍一种实现方法。

引言

假设存在三个度量值:

  1. 销售额
  2. 销售额预算
  3. 去年同期销售额

在包含这些数字的表格中,通常能看到以下情况(假设当前数据仅更新至2025年7月底):

图1 – 初始状态。注意预算数据和去年同期数据超出了当前数据的范围,当前数据仅到2025年7月底(作者供图)

虽然结果正确,但用户可能需要两种不同的视图:

  1. 仅查看基于现有数据的实际结果。
  2. 包含预算数据和去年同期数据的完整视图。

实现方式有多种:

  1. 创建应用了不同筛选器的独立视觉对象。
  2. 使用不同筛选器创建两个报表页。
  3. 指导用户使用日历切片器按需筛选数据。

然而,为了设计出用户友好且无需重复工作的报表,更优的方案是添加一个切片器,让用户自行选择是否包含未来数据。

创建日期筛选表

日期表通常包含针对不同时间周期(如日、周、月、季度、年)的索引列。

  • 当前周期所在行的索引值为0
  • 过去周期的索引值为负数
  • 未来周期的索引值为正数

以下是通过DayIndex列展示的一个小型SQL查询结果示例:

图2 – 日期表的部分示例行(作者供图)

利用此索引列,可以构建一个包含额外列作为切片器的新表。具体步骤是:首先选取所有索引值小于等于0的行,并将其标记为“仅当前数据”。然后,通过UNION操作将日期表中的所有行追加进来,并标记为“包含未来数据”。

图3 – 日期筛选表的完整选择逻辑(作者供图)

上述操作在SQL中完成,但同样可以在Power Query或其他编程语言中实现。完成构建后,将此表导入Power BI。

扩展数据模型

将新表添加到Power BI后,需要在新表和原有日期表之间建立新的关系:

图4 – 新建日期筛选表与日期表之间的关系(作者供图)

由于日期筛选表中的DateKey列并非唯一,必须将交叉筛选方向设置为双向:

图5 – 将交叉筛选方向设置为双向的关系(作者供图)

如果仅保持默认的单向筛选(日期表 -> 日期筛选表),则无法实现通过日期筛选表来筛选日期表的目标。因此,必须将筛选方向设置为“双向”。

实现效果

接下来,在报表中添加一个切片器:

图6 – 将DateFilter列设置为切片器磁贴(作者供图)

经过上述配置,切片器便能根据需要选择数据:

图7 – 选择“仅当前数据”时,不显示未来数据(作者供图)

图8 – 选择“包含未来数据”时,显示所有数据(作者供图)

用户可以使用此切片器来选择要查看的数据,其选择独立于日历切片器的选择。

选择完整周期

上述示例适用于需要在日级别进行筛选的场景,这在将当前数据与预算或去年同期数据进行比较时尤其有用。例如,在月初仅有个别几天销售数据时,与整个月的预算进行比较可能会产生误导。

然而,当筛选需要基于完整周期(如整月或整年)时,应如何处理?以下是一个修改后的查询示例,用于基于整年设置DateFilter列:

图9 – 基于整年设置DateFilter列的查询(作者供图)

现在,即使只应显示当前数据,也会展示整个年份:

图10 – 使用上述修改后的查询时,显示整个年份的数据(作者供图)

可以按照相同的方式修改日期筛选表,以实现按月或其他周期的筛选。这可以通过在日期表中筛选出当前日期所在的行来轻松实现。

结论

这种方法实现简单,对报表使用者来说也易于操作。它避免了编写复杂的DAX代码,完全依赖于日期表中的信息。其核心技巧是通过最小的努力扩展数据模型以满足需求。

如果没有示例中提到的索引列,可以采用其他方法生成日期筛选表。例如,使用T-SQL中的GETDATE()或其他语言中的Now()等函数来获取当前日期。

索引列不仅在此场景中非常有用,在许多其他需要根据相对于当前日期的日期来筛选数据的客户需求中也同样有效。当“当前日期”并非今天,而是需要遵循特定逻辑(例如上一个工作日)时,索引列能让处理变得轻松。

当然,也可以在报表中添加相对日期筛选器,这在许多情况下已经足够。但在其他情况下,索引列提供了更大的灵活性。

参考资料

与之前的文章一样,本文使用了Contoso示例数据集。可以从Microsoft此处免费下载ContosoRetailDW数据集。Contoso数据可在MIT许可证下自由使用,如此文档所述。本文对数据集进行了修改,将数据偏移到了更近的日期。

想了解 AI 如何助力您的企业?

免费获取企业 AI 成熟度诊断报告,发现转型机会

置顶文章

Instagram 给 AI 人设降权:Meta 划出的这条治理线,恰好和国内做法反着来
置顶

Instagram 给 AI 人设降权:Meta 划出的这条治理线,恰好和国内做法反着来

Uber 智能体请求涨 9.4 倍、账单没涨:拆开看,这不是省钱教程,是治理教程
置顶

Uber 智能体请求涨 9.4 倍、账单没涨:拆开看,这不是省钱教程,是治理教程

前途科技前途科技
服务关于快讯技术商业报告
前途科技微信公众号

微信公众号

扫码关注

Copyright © 2026 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。|京ICP备17045010号-1|京公网安备 11010502033860号|隐私政策|服务条款
索尼华纳起诉 Anthropic:这次赌的不是「AI 训练是否合法」
置顶

索尼华纳起诉 Anthropic:这次赌的不是「AI 训练是否合法」

//

24小时热榜

TOP1

AI伴侣狂潮:数千万人与代码的亲密关系

Product OS:AI产品团队的闭环实践
TOP2

Product OS:AI产品团队的闭环实践

3

思想的几何:思想是路,不是物

20小时前
思想的几何:思想是路,不是物
4

量子时代已至:企业领导者须立即行动

20小时前
量子时代已至:企业领导者须立即行动
5

后训练才是大模型的真战场

20小时前
6

我花六个月改变AI对客户的说法,结论出乎意料

20小时前
我花六个月改变AI对客户的说法,结论出乎意料
7

当业务不适合Tableau Pulse的指标

20小时前
8

Anthropic 加强 AI 安全与对齐

20小时前
Anthropic 加强 AI 安全与对齐
热门标签
大模型AgentRAG微调私有化部署Prompt EngineeringChatGPTClaudeDeepSeek智能客服知识管理内容生成代码辅助数据分析金融零售制造医疗教育AI 战略数字化转型ROI 分析OpenAIAnthropicGoogle

关注公众号

前途科技微信公众号

扫码关注,获取最新 AI 资讯

免费获取 AI 落地指南

3 步完成企业诊断,获取专属转型建议

已有 200+ 企业完成诊断