Power BI Desktop 在后台工作,自动识别表示日期的列,然后代表用户为模型创建日期层次结构和其他启用元数据。 然后,用户可以在创建报表功能(如视觉对象、表、快速度量值、切片器等)时使用这些内置层次结构。 Power BI Desktop 通过代表用户创建隐藏表来生成此数据,然后用户可以将表用于报表和 DAX 表达式。

有关此自动行为的详细信息,请参阅 在 Power BI Desktop 中应用自动日期/时间

许多数据分析师更倾向于创建其自己的日期表,这样做也可以。 在 Power BI Desktop 中,可以指定希望模型将其用作日期表的表,然后使用该表的日期数据创建与日期相关的视觉对象、表、快速度量值等。 指定自己的日期表时,可以控制在模型中创建的日期层次结构,并在快速度量值和使用模型日期表的其他操作中使用它们。

设置自己的日期表的好处

Power BI 中的时间智能函数 需要对模型中的日期计算有一定的了解。 设置自己的日期表或使用 自动日期/时间 可使这些函数能够正常工作。 在一些特定情况下,需要设置自己的日期表:

  • 日期表与模型中其他表之间的关系基于数据类型与日期/时间不同的列。 例如,如果从数据仓库等源加载数据,通常会提供表示日期的特定列。 这些列(也称为代理键)通常存储为整数,格式为 yyyymmddd(例如: 20201231 表示 2020 年 12 月 31 日)。 如果日期表与模型中利用此类列的其他表之间存在关系,需要设置自己的日期表以使用时间智能功能。
  • 如果要基于 Power BI 数据 在 Excel 数据透视表或数据透视图中使用高级日期筛选器
  • 设置自己的日期表

    若要设置日期表,请在“字段”窗格中选择要用作日期表的表,然后右键单击该表,在出现的菜单中选择“标记为日期表”>“标记为日期表”,如下图所示。

    还可以选择该表,然后从“表工具”功能区中选择“标记为日期表”,如此处所示。

    指定自己的日期表时,Power BI Desktop 会对该列及其数据执行以下验证,以确保数据:

  • 包含唯一值。
  • 不包含任何 null 值。
  • 包含连续的日期值(从开头到末尾)。
  • 如果它是“日期/时间”数据类型,则它在每个值间具有相同的时间戳。
  • 创建自己的日期表有两种可用方案,每种都是合理的方法:

  • 第一种方案在使用规范或基本日期表和层次结构时适用。 此方案将在数据中使用符合前面所述的日期表验证条件的表。

  • 第二种方案用于将来自 Analysis Services 的表与想要用作日期表的 dim date 字段结合使用的情况。

    指定日期表后,可以选择将该表中的哪一列作为日期列。 可以通过选择“字段”窗格中的表指定要使用的列,然后右键单击该表并选择“标记为日期表”>“日期表设置”。 此时将出现以下窗口,可以从窗口的下拉列表中选择要用作日期表的列。

    请务必注意,用户在指定自己的日期表时,Power BI Desktop 不会自动创建将代表用户构建到模型中的层次结构。 如果以后取消选择日期表(并且不再具有手动设置的日期表),Power BI Desktop 将针对表中的日期列为用户重新创建自动创建的内置日期表。

    同样需要注意的是,当你将表标记为日期表时,Power BI Desktop 会删除内置(自动创建)的日期表。 之前基于这些内置表创建的任何视觉对象或 DAX 表达式将不再正常工作。

    将日期表标记为相应的数据类型

    指定自己的日期表时,需要确保数据类型已正确设置。 用户想要将“数据类型”设置为“日期/时间”或“日期”。 为此,可执行以下步骤:

  • 从“字段”窗格中选择日期表,并根据需要将其展开,然后选择要用作日期的列。

  • 在“列工具”选项卡上,选择“数据类型”,然后选择下拉箭头以显示可用的数据类型。

  • 指定列的数据类型。

    有关本文的更多信息,请参阅以下资源:

  • 在 Power BI Desktop 中应用自动日期/时间
  • 在 Power BI Desktop 中创建日期表
  • Power BI Desktop 中的数据类型
  • 是否有任何问题? 尝试咨询 Power BI 社区
  • 建议? 提出改进 Power BI 的想法
  •