首先,创建一个新表“资产”:
此表包含独特的资产,我们将使用它来创建一个影响 DAX 度量但不影响视觉(表)的切片器。为此,必须将 Asset 表与 Viewership 表断开连接(无关系)。
在您的收视率表中,我只是将“asset”重命名为“asset_id”,以保持一致:
接下来,创建一个度量:
Status =
VAR Selected_Asset = SELECTEDVALUE(Asset[asset_id])
VAR Customer_Asset = SELECTEDVALUE(Viewership[asset_id])
RETURN
IF(Customer_Asset = Selected_Asset, "Watched", "Not Watched")
结果:
此处的切片器是从“资产”表创建的,而表是具有来自 Viewership 表的 customer_id 和asset_id 的表视觉对象(将它们设置为“不汇总”值)。我关闭了“total”,假设你不需要它。
此设计需要将资产切片器设置为“单选”模式,以确保您只能从中获取一个值。如果您希望模型与多选切片器一起使用,请按如下方式更改 DAX 度量:
Multi Status =
VAR Selected_Assets = ALLSELECTED(Asset[asset_id])
VAR Customer_Asset = SELECTEDVALUE(Viewership[asset_id])
RETURN
IF(Customer_Asset IN Selected_Assets, "Watched", "Not Watched")
结果:
编辑:
使其在客户层面发挥作用:
Customer Status =
VAR Selected_Assets = ALLSELECTED(Asset[asset_id])
VAR Customer_Assets = VALUES(Viewership[asset_id])
VAR Assets_Watched = COUNTROWS(INTERSECT(Customer_Assets, Selected_Assets))
RETURN
IF(Assets_Watched > 0, "Watched", "Not Watched")
结果:
说明:将选定的资产存储在表变量中。然后,将每个客户可见的资产存储在另一个表变量中。找到两个表的交集(它们的共同点),并计算相交的行数。如果没有 - 不观看,否则观看。如果需要,您实际上可以显示观看的电影数量(只需返回“Assets_Watched”而不是 IF 语句)。