【问题标题】:How to count customers who visited a destination also visited another destination?如何计算访问过一个目的地的客户也访问过另一个目的地?
【发布时间】:2020-03-17 03:55:03
【问题描述】:

我们必须显示访问过印度的客户也访问过斯里兰卡的人数。作为特定目的地(印度)(ex cust.-A 和 cust-B,count=2)和目的地(斯里兰卡)(ex cust-A,count=1)的客户计数。 我将列作为客户 ID 和目的地。

预期结果: 印度、斯里兰卡

交叉访问:- 2 , 1

在下面的图片链接中,每个目的地下的客户总数,当我们在切片器中单击特定目的地(City Walk)时,下方的卡片应显示访问过特别点击目的地的客户的计数值以及也在其他目的地的客户。

根据目的地选择,这将展示在定义的时间段内访问/连接到其他目的地的客户(唯一),例如去过“City Walk”的顾客也去过“Bluewaters”、“La Mer”等。

感谢您的信息。但是我们已经在每张卡片中显示了这些数据,并且应该根据点击切片器中的目的地进行更改。我已将问题中的图片链接作为 Screen1 放置,请查看。

Report Image

【问题讨论】:

  • 我推测这是Basket Analysis 模式的场景,但您能否提供更多数据说明和所需输出?

标签: powerbi dax


【解决方案1】:

您可以应用“篮子分析”模式。

购物篮分析是一个通用术语,指的是“购买了 A 的客户也购买了 B”。 Marco Russo 在DAX Patterns 中解释了如何解决这种问题模式。这适合您的场景,只需将“购买 A 的客户也购买 B”改写为“访问 A 的客户也访问 B”。

这里是一步一步的方法。

为了说明,我想使用一个虚拟访问数据,如下所示。在此数据中,有 4 个访客和 3 个目的地。

当我将此数据加载到模型中时,我还使用 Power Query 创建了访问者和目的地表,它们分别保存了唯一的访问者和目的地。

在“建模”选项卡中,我创建了一个名为“Second Destinations”的计算表,它只是定义为 DAX 公式 Second Destinations = Destinations 的 Destinations 的克隆。

然后我在表之间建立了关系。这基本上是带有事实表访问和 3 维表的星型模式。请注意,第二个目的地和访问之间的关系是虚线。必须处于非活动状态。

现在定义一个度量来计算有多少访问者访问了第一个目的地也访问了第二个目的地。一个最小的公式应该是这样的。

Cross Visits = 
CALCULATE(
    DISTINCTCOUNT(Visits[VisitorID]),
    CALCULATETABLE(
        SUMMARIZE(Visits, Visitors[VisitorID]),
        ALL(Destinations),
        USERELATIONSHIP('Second Destinations'[Destination], Visits[Destination])
    )
)

使用 Destination 和 Second Destination,我们能够得到预期的输出。

【讨论】:

  • 感谢您的信息。但是我们已经在每张卡片中显示了这些数据,并且应该根据单击切片器中的 Destinations 进行更改。我已将问题中的图像链接作为 Screen1 放置,请查看它。我已将 .pbix 文件放入问题中。
  • 我展示的是一种建模模式,它与可视化类型无关。实际上,这应该适用于卡片,方法是使用 Second Destination 过滤卡片并使用 Destination 进行切片。
猜你喜欢
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
相关资源
最近更新 更多