在 Power BI 中创建钻取按钮

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

可以在 Power BI 中创建一个钻取按钮。 此按钮将钻取到一个页面,其中包含筛选到特定上下文的详细信息。

在报表中钻取的一种方法是,右键单击视觉对象。 但是,如果希望钻取操作更为明显,可以改为创建钻取按钮。 钻取按钮可以增加报表中重要钻取方案的可发现性,而且你还可以在一定条件下确定该按钮的外观和操作方式。 例如,如果满足某些条件,则可以在按钮上显示不同的文本。

在此示例中,选择图表中的 Word 栏后即会启用“查看详细信息”钻取按钮。

Screenshot of a visual, highlighting the See details drillthrough button.

选择“查看详细信息”按钮后,会钻取到“市场篮分析”页面。 在以下视觉对象中可以看到,钻取页现在的筛选条件为 Word。

Screenshot showing the filtered visual, highlighting Word.

设置钻取按钮

要设置钻取按钮,首先需要在报表中设置一个有效的钻取页面。 然后,创建操作类型为“钻取”的按钮,并选择钻取页作为“目标”。

由于钻取按钮有两种状态(“已启用”和“已禁用”),因此,可看到两个工具提示选项。

Screenshot of a visual and the Format menu, highlighting the options to set up a drillthrough button.

如果将工具提示框留空,Power BI 会自动生成工具提示。 这些工具提示是基于目标和钻取字段的。

下面的示例展示了禁用按钮时自动生成的工具提示:

“要钻取到‘市场篮分析’[目标页面],请从‘产品’[钻取字段]中选择一个数据点。”

Screenshot of a visual, highlighting a disabled autogenerated tooltip.

下面的示例展示了启用按钮时自动生成的工具提示:

“单击以钻取到‘市场篮分析’[目标页面]。”

Screenshot of a visual, highlighting an enabled autogenerated tooltip.

但是,如果要提供自定义工具提示,可以输入静态字符串。 你还可以应用条件格式到工具提示

传递筛选器上下文

按钮的工作方式与常规钻取类似:可以通过交叉筛选包含钻取字段的视觉对象在更多字段中传递筛选器。 例如,使用 Ctrl + 单击和交叉筛选,可以将商店细分中的多个筛选器传递到钻取页,因为所选内容对包含“产品”(即钻取字段)的视觉对象进行了交叉筛选:

Screenshot of a visual, highlighting Word cross-filtered into the Store Breakdown.

选择钻取按钮后,可看到商店和产品中的筛选器同时传递到目标页中:

Screenshot of the Filters pane, highlighting the applied filters.

不明确的筛选器上下文

由于钻取按钮没有绑定到单个视觉对象,因此,如果选择不明确,则会禁用此按钮。

在此示例中,按钮处于禁用状态,因为两个视觉对象在“产品”中都包含一个选择。 关于可以从哪个视觉对象将钻取操作绑定到哪个数据点存在歧义:

Screenshot showing ambiguous filter context with a disabled button.

为禁用按钮自定义格式

可以为钻取按钮的禁用状态自定义格式选项。

Screenshot showing customized disabled button formatting.

这些格式选项包括:

  • 按钮文本控件:文本、字体系列、字体大小、字体颜色、对齐方式和填充

    Screenshot showing a formatted disabled button text.

  • 按钮填充控件:颜色、填充图像和透明度

    Screenshot showing a formatted disabled button fill.

  • 按钮图标控件:形状、线条颜色、粗细、透明度、对齐方式和填充

    Screenshot showing a formatted disabled button icon.

  • 按钮边框控件:颜色、宽度、透明度

    Screenshot showing formatted disabled button border.

有条件地为按钮文本设置格式

在 Power BI Desktop 中,可以使用条件格式根据选择的字段值更改按钮文本。 为此,请创建一个基于 DAX 函数 SELECTEDVALUE 输出所需字符串的度量值。

以下示例度量值输出“查看产品详细信息”(如果未选择单个产品值)。 如果选择了一个产品值,度量值将输出“查看[所选产品的]详细信息”:

String_for_button = If(SELECTEDVALUE('Product'[Product], 0) == 0, "See product details", "See details for " & SELECTEDVALUE('Product'[Product]))

创建此度量值后,请在 Power BI Desktop 中执行以下步骤:

  1. 对于按钮文本,请选择“条件格式”(fx) 选项。

    Screenshot of the Text pane, highlighting the Conditional formatting button for the button text.

  2. 选择为按钮文本创建的度量值:

    Screenshot of the Text State pane, highlighting the selected field for the button text.

  3. 选择单个产品时,按钮文本显示:

    “查看 Word 的详细信息”

    Screenshot of Category Breakdown, highlighting See details for Word.

  4. 如果未选择任何产品或选择了多个产品,则该按钮将被禁用。 按钮文本显示:

    “查看产品详细信息”

    Screenshot of Category Breakdown, highlighting multiple values selected and the disabled See product details button.

有条件地设置工具提示的格式

启用或禁用钻取按钮时,可以有条件地为其设置工具提示。 如果使用条件格式动态设置钻取目标,则可能希望按钮状态的工具提示更加丰富,这取决于最终用户的选择。 下面是一些示例:

  • 你可以使用自定义度量值将禁用状态工具提示设置为根据具体情况进行规范。 例如,如果你希望用户选择单个产品和单个商店,然后才能钻取到“市场分析”页面,则可以使用以下逻辑创建度量值:

    如果用户未选择单个产品或单个商店,则该度量值将返回:“选择单个产品,然后按住 Ctrl 并单击选择单个商店。”

    如果用户已选择单个产品,但未选择单个商店,该度量值将返回:按住 Ctrl 并单击还可以选择单个商店。

  • 同样,你可以将已启用的状态工具提示设置为特定于用户的选择。 例如,如果希望用户知道钻取页将筛选出的产品和商店,则可以创建返回以下内容的度量值:

    “单击以钻取到[按页面名称钻取],以查看有关[商店名称]商店销售[产品名称]的详细信息。”

有条件地设置钻取目标

根据度量值的输出,可以使用条件格式设置钻取目标。

在某些情况下,你可能希望按钮钻取目标是有条件的:

  • 只需在满足多个条件时,才想要实现钻取到页面。 否则,按钮将处于禁用状态。

    例如,你希望用户选择单个产品和单个商店,然后才能钻取到市场详细信息页。 否则,按钮将处于禁用状态。

    Screenshot showing the product and store selected.

  • 你希望按钮基于用户选择支持多个钻取目标。

    例如,如果有用户可以钻取到的多个目标(市场详细信息和商店详细信息),可以让用户选择一个要钻取到的特定目标,然后为此钻取目标启用该按钮。

    Screenshot showing the product and destination selected.

  • 可能还会遇到有趣的混合方案的案例,要同时支持多个钻取目标和要禁用该按钮的特定条件。 继续阅读有关这三个选项的详细信息。

禁用该按钮,直到满足多个条件

让我们看一看第一种情况,即,你想要保持按钮的禁用状态直到满足更多条件。 在 Power BI Desktop 中,你需要创建一个基本 DAX 度量值,除非满足条件,否则该度量值会输出一个空字符串 (“”)。 满足条件后,度量值将输出“钻取目标”页的名称。

下面是一个示例 DAX 度量值,需要先选择一个商店,然后用户才能在产品上钻取到“商店”详细信息页:

Destination logic = If(SELECTEDVALUE(Store[Store], “”)==””, “”, “Store details”)

创建度量值后,请在 Power BI Desktop 中执行以下步骤:

  1. 对于按钮操作,选择“目标”旁边的“条件格式”(fx)。

    Screenshot of the Action pane, highlighting the Conditional formatting button.

  2. 在最后一步中,选择你创建的 DAX 度量值作为目标的字段值。

    Screenshot of the Destination Action pane, highlighting the base field selection.

    现在你会发现,即使选择了单个产品,此按钮也处于禁用状态,因为度量值还要求你选择单个商店。

    Screenshot of the Category Breakdown visual, highlighting the drillthrough button disabled.

支持多个目标

对于要支持多个目标的其他常见情况,请执行以下步骤:

  1. 使用钻取目标的名称创建单列表。

    Screenshot showing the Create Table window.

  2. 由于 Power BI 使用完全匹配的字符串来设置钻取目标,因此请确保输入的值与钻取页名称完全一致。

  3. 创建表后,将其作为单项选择切片器添加到页面。

    Screenshot showing a drillthrough slicer.

  4. 如果需要更多垂直空间,请将切片器转换为下拉列表。 删除切片器标头并在其旁边添加一个带有标题的文本框。

    Screenshot showing a drillthrough slicer with no header.

  5. 或者,将列表切片器从垂直方向更改为水平方向。

    Screenshot showing a horizontal slicer.

  6. 对于钻取操作的目标输入,为该按钮操作选择“目标”旁边的“条件格式”(fx) 按钮。

    Screenshot of the Action pane, highlighting the Conditional formatting button for the drillthrough destination.

  7. 在“目标 - 操作”页上,选择创建的列的名称。 在本例中,它是“选择目标”。

    Screenshot showing the Select a destination field selected.

    现在,你会看到“钻取”按钮仅在你同时选择了一个产品和一个目标时才启用:

    Screenshot showing the product and destination selected.

两种方案的混合

如果对这两种混合方案感兴趣,可以在 Power BI Desktop 中创建和引用 DAX 度量值,为目标选择添加更多逻辑。

下面是一个示例 DAX 度量值,用户需要先选择一个商店,然后才能在“产品”上钻取到任何钻取页:

Destination logic = If(SELECTEDVALUE(Store[Store], “”)==””, “”, SELECTEDVALUE(‘Table'[Select a destination]))

在 Power BI Desktop 中,选择你创建的 DAX 度量值作为目标的字段值。 在此示例中,用户必须选择产品、商店和目标页,然后才能启用钻取按钮:

Screenshot showing the product, store, and destination selected.

注意事项和限制

  • 此按钮不允许通过单个按钮实现多个目标。
  • 此按钮仅支持在同一报表中进行钻取。换句话说,它不支持交叉报表钻取。
  • 按钮的禁用状态格式与报表主题中的颜色类别相关。 详细了解颜色类别
  • 钻取操作适用于所有内置视觉对象以及从 AppSource 导入的某些视觉对象。 但并不保证此操作适用于从 AppSource 导入的所有视觉对象。

若要详细了解与按钮类似的功能或如何与按钮交互,请参阅以下文章: