我有一个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,因为“Billy”在选定的时间段内进行了1次购买,第二个bin将为2,并且它的值也为1,因为“Alison”在所选时间段内进行了2次购买 . 如果我将[购买数量]放在x轴上然后使用
NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
对于 Value 观,它告诉我有3个人有5次购买,但事实并非如此 . 实际上,在Purchases表上实际上没有人有5次购买 . Alison以3次购买为主导 .
为了实现这一点,我计划使用堆积柱形图,我只是不知道用于Axis和Values的内容 . Axis只允许我使用静态列,这很好,但我可以让客户购买50个 .
我认为答案将是开发一个计算表,但我之前从未这样做过,所以我不确定如何这样做 .
1 回答
有一些事情需要改变才能实现你想要的 . 我将尝试解释您的场景中发生的事情,然后为您可能更改的内容提供一些输入 .
Why do you get this result?
当您将日期过滤器设置为2017年1月1日至2017年1月1日时,您将在范围内保留以下购买(包括过滤器中的所选日期):
当您在X轴上设置客户[购买]的条形图时,以及您的度量
在Y轴上,您实际上从Purchases表中计算[ID]的数量,并在Customer表中显示相关的[Purchases]值 .
根据您的客户表,Alison有5次购买,Billy有2次购买 . 这些是静态值,并且不会受到日期过滤器的任何影响 .
COUNT()函数不返回不同数量的[ID](您可以使用DISTINCTCOUNT()函数来实现此目的) . 因此,您将在Y轴上看到值3(Alison在所选日期的“购买”表中显示三次),X轴上的值为5(Alison根据您的“客户”表格进行了5次购买) . 比利也是如此 .
What can you change to accomplish what you want?
你想要完成的是不容易实现的 . 您希望在一个轴上使用动态度量(在选定时间段内每个客户的购买数量),在另一个轴上使用另一个动态度量(所选时间段内的不同客户数量) . 这在PowerBI中无法完成 . 这里的问题是动态日期过滤器,它阻止您预先计算购买数量作为计算列 .
一种解决方案可以是创建一个新表,其中包含每个客户每月的购买数量 . 然后,您可以仅在一个月内使用过滤器,并在X轴上显示该月的每个客户的购买数量 . 这是可能的,因为购买的数量是预先计算的数量(列,而不是度量) . 在Y轴上,你可以使用这样的度量: