dax 比较客户选择的月份和其他月份

dax compare customers selected month vs other months

我正在尝试获取在 2019 年 1 月购买的客户列表,并从销售数据中计算出这些 1 月的客户中有多少人在 2 月、3 月等购买了商品。

任何想法,我已经尝试了很多解决方案,但 none 似乎符合我的需要

因此需要 return 1 月有 2 位客户,1 月有 2 位客户在 2 月购买,1 月只有 1 位客户在 3 月购买。

输出看起来像这样

1 月购买者在 2 月和 3 月等计算

好的,我在 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 向您的数据集添加一个列,该列将 'tag' 每行包含该客户最早的购买日期。这是一个计算列,而不是度量。

Earliest Purchase YearMonth = 

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

然后只需使用矩阵视觉对象,行 headers 中包含最早购买日期,headers 列中包含购买日期,值中包含不同的客户计数。

希望对您有所帮助!