首页 > 解决方案 > dax 比较客户选择的月份与其他月份

问题描述

我正在尝试列出在 2019 年 1 月购买的客户列表,并且来自销售数据的数据计算了在 2 月、3 月等月份购买的 1 月客户中有多少。

任何想法,我已经尝试了许多解决方案,但似乎没有一个适合我的需求

在此处输入图像描述

所以这需要从 1 月返回 2 个客户,从 1 月返回 2 个在 2 月购买的客户,从 1 月返回 1 个在 3 月购买的客户。

输出看起来像这样

在此处输入图像描述

一月购买者在二月和三月等计算。

标签: powerbidaxssas-tabular

解决方案


好的,我在excel中生成了一些随机数据并将其粘贴为电源查询源:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("dZRLDsQwCEPv0nUXQNJ8zlLN/a8xGjWQ0UPdWhgbQ3Lfh0o/zsNEp4zjc/6AsgCVB1CvUFuAOaUtykDFbuoVE4A6RZwiDpRVUR3QBVysSNaV1r2prh5irz0uzCJvlB2QUsVACdnmPSozFVYMAFFhNHZRtkAlKkI2Qp4PYEKKwodG047Nxfgdq9QJYwG4rPIchLtNiW1jhefg41dSjLutVOHBbB/KgDpOOy07AqpsKvSRAipMXRHyPjqnNK5hcPz0gCYXJXC676NBVpLKIMBzCOtCCv8PS2+ff5CQsnsMpB63nh7h/y/1+QI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Customer = _t, #"Purchase YearMonth" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", Int64.Type}, {"Purchase YearMonth", Int64.Type}})
in
    #"Changed Type"

我认为一种有效的方法是使用 DAX 在您的数据集中添加一列,该列将用该客户最早的购买日期“标记”每一行。这是一个计算列,而不是一个度量。

Earliest Purchase YearMonth = 

CALCULATE(
MIN('Sales'[Purchase YearMonth]),
FILTER(
   'Sales',
   Sales[Customer] = EARLIER(Sales[Customer]) 
))

然后只需使用矩阵视觉对象,其中行标题中的最早购买日期、列标题中的购买日期以及客户的不同计数作为值。

在此处输入图像描述

希望能帮助到你!


推荐阅读