我有一个Customers表,如下所示:
Customers
Name ID Number of Purchases
Billy 100 2
Steve 101 1
Alison 102 5
John 103 3
Matt 104 0
Andrew 105 1
我有一个标准的日期维度
Date Month Year
1/1/2017 January 2017
1/2/2017 January 2017
1/3/2017 January 2017
1/4/2017 January 2017
...
2/1/2017 February 2017
2/2/2017 February 2017
2/3/2017 February 2017
2/4/2017 February 2017
我有一个购买表
Purchases
Date Name ID Amount
1/1/2017 Billy 100 10.53
1/1/2017 Alison 102 15.90
1/2/2017 Alison 102 9.87
1/3/2017 Steve 101 12.59
1/4/2017 Billy 100 22.19
1/4/2017 John 103 17.45
1/5/2017 John 103 8.79
2/1/2017 Alison 102 9.87
我正在努力开发一些东西,根据他们在所选日期范围内的购买次数,每个顾客都被扔进垃圾箱。
因此,如果我选择1/1/2017 - 2017年1月1日,我应该只有2个酒吧。第一个条在x轴上的值应为1,值为1,因为"比利"在选定的时间段内进行1次购买,第二次存储区将为2,并且它的值也为1,因为" Alison"在所选时间段内进行了2次购买。如果我将[购买数量]放在x轴上,然后使用
NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
对于价值观,它告诉我有3个人有5次购买,但事实并非如此。实际上,在Purchases表上实际上没有人有5次购买。 Alison在购买3件时处于领先地位。
为了实现这一目标,我计划使用堆积柱形图,我只是不知道如何使用轴和值。 Axis只允许我使用静态列,这很好,但我可以让客户购买50个。
我认为答案是制定一个计算表格,但我之前从未这样做过,所以我不确定这是怎么回事。
答案 0 :(得分:0)
有一些事情需要改变才能达到你想要的效果。我将尝试解释您的场景中发生的事情,然后为您可能更改的内容提供一些输入。
为什么会得到这个结果?
当您将日期过滤器设置为2017年1月1日至2017年1月1日时,您还可以在范围内进行以下购买(包括过滤器中的所选日期):
Date Name ID Amount
1/1/2017 Billy 100 10.53
1/1/2017 Alison 102 15.90
1/2/2017 Alison 102 9.87
2/1/2017 Alison 102 9.87
在X轴上设置客户[购买]的条形图,以及您的度量
NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
在Y轴上,您实际上从Purchases表中计算[ID]的数量,并在Customer表中显示相关的[Purchases]值。
根据您的客户表,Alison有5次购买,Billy有2次购买。这些是静态值,不会受到日期过滤器的任何影响。
COUNT()函数不返回不同数量的[ID](您可以使用DISTINCTCOUNT()函数来实现此目的)。因此,您将在Y轴上看到值3(Alison在所选日期的“购买”表中显示三次),X轴上的值为5(Alison根据您的“客户”表格进行了5次购买)。比利也是如此。
你可以改变什么来完成你想要的东西?
您想要实现的目标并非易事。您希望在一个轴上使用动态度量(在选定时间段内每个客户的购买数量),在另一个轴上使用另一个动态度量(所选时间段内的不同客户数量)。这在PowerBI中无法完成。这里的问题是动态日期过滤器,它会阻止您将购买次数预先计算为计算列。
一种解决方案可能是创建一个新表,其中包含每个客户每月的购买数量。然后,您可以仅在一个月内使用过滤器,并在X轴上显示该月的每个客户的购买数量。这是可能的,因为购买的数量是预先计算的数量(列,而不是度量)。在Y轴上,你可以使用这样的度量:
CustomerCount = DISTINCTCOUNT(PurchasesPerMonth[CustomerID])