显示 Power BI 中不含数据的项目

适用范围:Power BI Desktop Power BI 服务

使用 Power BI 的显示没有数据的项功能,以显示不包含度量数据的数据行和列。

创建视觉对象时,Power BI 默认不显示所有可能的数据。 相反,Power BI 会向数据应用度量值,然后省略具有空白度量值的行和列。 在某些情况下,可能需要显示省略的数据。 在这些场景中,显示无数据项功能提供了一种将该数据包含在可视化中的方式。

“可视化”窗格的屏幕截图。在 X 轴字段井中,年份被突出显示。在其快捷菜单中,

显示没有数据的项

若要打开 没有数据功能的“显示项目 ”,请执行以下步骤:

  1. 选择一个视觉对象。
  2. 转到 “可视化效果 ”窗格,找到 X 轴Y 轴 字段。
  3. 右键单击井中的字段,然后选择“ 显示无数据的项目”。

“可视化”窗格的屏幕截图。在 X 轴字段区中,年份被突出显示。在其快捷菜单中,显示无数据项被突出显示。

“显示不含数据的项”功能在以下情况下不起任何作用:

  • 未向视觉对象添加度量值,分组列来自同一个表。
  • 视觉图示中的组不相关。 Power BI 不会为具有不相关的组的视觉对象运行查询。
  • 度量值与所有组均无关。 在这种情况下,度量值返回所有组组合的相同值或空白值。 对于某些组合,它永远不会为空,但不是其他组合。 由于度量值没有方差,因此启用该功能不起作用。
  • 用户定义度量值筛选器排除空白度量值,例如 SalesAmount > 0

注意

打开选项以显示没有数据的项目可能会对性能产生负面影响,并可能导致视觉对象呈现缓慢或数据导出超时。

功能的工作原理

“显示不含数据的项”的最有趣用法是存在度量值的情况。 假设存在组来自同一个表或可以通过模型中的路径进行关联的情况。 例如,在 本文末尾的示例数据模型中ProductStyle 表与 Product 直接相关,间接与 Sales 相关。 可以通过“Product”表关联“ProductStyle”和“ProductCategory”。

以下案例比较了在关闭和打开显示没有数据的项时,Power BI 的行为。 这些情况还使用本文末尾的示例数据模型。

对同一表中的列进行分组

以下示例对同一表 Product[Color]Product[Size] 中的两列进行分组,然后应用 Sum(Sales[Quantity]) 度量值。 关闭无数据功能的“显示项”时,Power BI 会显示以下数据:

Product[Color] Product[Size] 和(Sales[Quantity])
蓝色 中等 15
蓝色 小型 10

显示无数据项的功能开启时,Power BI 将显示以下数据:

Product[Color] Product[Size] Sum(Sales[Quantity])
蓝色 大型
蓝色 中等 15
蓝色 小型 10
Red 大型

启用该功能时会显示两个新组合: 蓝色 - 大红色 - 大。 这两个条目在 Sales 表中没有对应的 Quantity 值。 但是,它们都存在于 Product 表中。

以下示例对相关表中的两列( ProductStyle[Finish]Product[Color])进行分组,然后应用 Sum(Sales[Quantity]) 度量值。

关闭无数据功能的“显示项”时,Power BI 会显示以下数据:

ProductStyle[Finish] Product[Color] 求和(Sales[Quantity])
光泽 蓝色 10
亚光 蓝色 15

当启用 显示无数据项 功能时,Power BI 将显示以下数据:

ProductStyle[Finish] Product[Color] 求和(Sales[Quantity])
光泽 蓝色 10
光泽 Red
亚光 蓝色 15

当功能打开时,会显示两个新的组合:高光 - 红色无 - 空,具体原因如下:

  • Power BI 首先考虑 ProductStyle[Finish] 并选择要显示的所有值,这会导致 “光泽”、“ 马特”和 “无”。
  • Power BI 使用这些值中的每个值来选择所有对应的 Product[Color] 条目。
  • None 值与任何 Product[Color] 值不对应,因此 Product[Color] 值将显示空白。

为列选择值的机制取决于列的顺序。 可以将此机制视为表之间的LEFT OUTER JOIN操作。 如果列的顺序发生更改,结果也会更改。

请考虑一个示例来了解更改顺序如何影响结果。 此示例与上一个示例相同,但排序已更改。 本示例对 Product[Color]ProductStyle[Finish] 列进行分组,然后应用 Sum(Sales[Quantity]) 度量值。

当启用显示无数据的项功能时,Power BI 将显示以下数据:

Product[Color] ProductStyle[Finish] Sum(Sales[Quantity])
蓝色 光泽 10
蓝色 亚光 15
Red 光泽

ProductStyle[Finish] 值为 None 的表中未显示任何数据。 在本例中,Power BI 先选择了“Product”表中的所有“Color”值。 对于每种颜色,Power BI 会选择包含数据的相应 Finish 值。 由于 “无” 不显示在 任何颜色组合中,因此 Power BI 不会选择它。

Power BI 视觉对象行为

在图表中 打开“显示无数据的项目” 时,系统会自动启用同一 视觉组 或层次结构中的所有字段的这一功能。 视觉对象存储桶是 可视化 效果窗格中的一个字段,用于确定视觉对象中字段或层次结构的角色。 可能的角色包括 X 轴Y 轴图例类别

“可视化窗格”的屏幕截图,其中突出显示了 X 轴、Y 轴和图例视觉区域。每个区域中的文本都显示“在此处添加日期字段”。

例如,假设矩阵图形在类别中包含三个字段。 如果为一个字段打开“显示没有数据的项目”,则会为存储桶中的所有项目启用该功能。 在下图中,显示没有数据的项已为“”存储桶中的第一个字段“供应商ID”打开。 此功能也会自动对 存储桶中的其他字段开启。

“可视化”窗格的截图。在“行”字段内的“供应商ID”字段快捷菜单中,突出显示“显示无数据的项目”。

相反,存储桶中显示的大陆字段没有自动启用显示无数据项

将视觉对象转换为其他类型(例如将矩阵视觉对象转换为表视觉对象)时,通常会发生此视觉行为。 例如,假设启用了存储桶中字段的“显示无数据项”功能。 如果转换将其他字段移动到该存储桶,则会自动为这些字段启用该功能。

请考虑上一示例中的数据。 表视觉对象只有一个存储桶,即 “列” 存储桶。 将矩阵转换为表时,矩阵中 “行 ”和 “列” 存储桶中的所有字段将移动到表中的 “列” 存储桶。 在这种情况下, SupplierID 字段是移动到该存储桶的字段之一。 如果为 SupplierID 打开 显示没有数据 功能,则转换将为所有移动到表 类别的字段(包括 大陆 字段)开启该功能。

导出数据

使用“导出汇总数据”功能时,“显示不含数据的项”功能的行为与导出转换为表视觉对象时的行为相同。 因此,导出视觉对象(如图表矩阵视觉对象)时,导出的数据可能与显示的视觉对象不同。 原因是导出视觉对象时,它首先转换为表视觉对象。 该过程将为所有被导出的字段启用显示无数据项功能。

示例数据模型

本部分介绍本文中示例使用的示例数据模型。

型号

数据的模型视图的屏幕截图。五个框可见,每个表格各有一个框。连接框的线条表示表关系。

Data

Product[ProductId] Product[ProductName] Product[Color] Product[Size] Product[CategoryId] Product[StyleId]
1 Prod1 蓝色 小型 1 1
2 Prod2 蓝色 中等 2 2
3 Prod3 Red 大型 1 1
4 Prod4 蓝色 大型 2 2
ProductCategory[CategoryId] ProductCategory[CategoryName]
1 电话
2 照相机
3 TV
ProductStyle[StyleId] ProductStyle[Finish] ProductStyle[Polished]
1 光泽
2 亚光
3
Sales[SaleId] Sales[ProductId] Sales[Date] Sales[Quantity]
1 1 2012 年 1 月 1 日 0:00 10
2 2 2013 年 1 月 1 日 0:00 15

在 Power BI 中使用多维语义模型