我要求切片器中的所选值必须有效。

让我们假设,如果我在Store slicer中选择一个值,并且该商店被从公司中删除。切片器仍将显示其名称,而与切片器交互的视觉效果中没有数据。

选择默认值

api - 如何在Power BI中将切片器值设置为第一个可用值形式表?-LMLPHP

手动更新切片器值

api - 如何在Power BI中将切片器值设置为第一个可用值形式表?-LMLPHP

但我只希望在我的商店切片器中选择相关商店。我知道它的切片器的属性可以保留在发布报表时在其中设置的值,但是有任何解决方法。

最佳答案

您的问题的实质已在以下线程中提出并涵盖:

Initial value of Power BI slicer based on another slicer choice

答案是否定的,但是我可以提出一种解决方法。


在具有商店的维度表中,添加计算列Rank,该列将确定销售额最高的商店。您可以为此使用RANKX函数。
添加StoreName计算列,该列返回文本值"The biggest store"(或"Top 1"-或其他)和所有其他商店的原始商店名称。使用IF。
将包含StoreName值的列"The biggest store"放入切片器。
添加视觉效果(卡片,表格),您将在其中显示当前所选商店的原始名称。
按为此目的设计的“等级”列对StoreName列进行排序,以使The biggest store浮动到切片器的顶部。 Here是如何按另一列对列进行排序。


由于总会有一家销售最高的商店,因此您可能总是会在切片器中勾选该值,并且它将始终显示数据。

在此示例中,"The biggest store"是“为女孩存储”。我将其保留在切片器上。然后,从事实表中删除该商店的所有记录。应用。切片器仍被选择为"The biggest store",但是现在最大的存储区是“为瓢虫存储”。

api - 如何在Power BI中将切片器值设置为第一个可用值形式表?-LMLPHP

这是一个可供下载的示例文件(M和DAX中的两种方法):

M Default Slicer Value.pbix

您可以通过添加计算表来完全在DAX中创建DimStore表:

DimStore_DAX =
SUMMARIZECOLUMNS (
    Sales[Store],
    "Sales", [Sale],
    "Rank", RANKX ( ALL ( Sales[Store] ), [Sale] ),
    "StoreName", IF ( RANKX ( ALL ( Sales[Store] ), [Sale] ) = 1, "The biggest store", VALUES ( Sales[Store] )
    )
)

10-06 10:42