Powerbi Power BI/DAX-带动态计数的叠层柱状图

Powerbi Power BI/DAX-带动态计数的叠层柱状图,powerbi,dax,Powerbi,Dax,我有一个客户表,如下所示: Customers Name ID Number of Purchases Billy 100 2 Steve 101 1 Alison 102 5 John 103 3 Matt 104 0 Andrew 105 1 我有一个标准的日期维

我有一个客户表,如下所示:

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
我正在尝试开发一种方法,根据每个客户在所选日期范围内的购买数量,将其扔进垃圾箱

因此,如果我选择2017年1月1日-2017年1月2日,我应该只有2个酒吧。第一个栏在x轴上的值应为1,因为“Billy”在选定的时间段内进行了1次购买,第二个栏的值应为2,它的值也应为1,因为“Alison”在选定的时间段内进行了2次购买。如果我将[购买数量]放在x轴上,然后使用

NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
就价值而言,它告诉我有3个人购买了5次,但事实并非如此。事实上,没有人在购买表上有5次购买。艾莉森在三次购买中处于领先地位

为了实现这一点,我计划使用堆叠柱形图,我只是不知道轴和值使用什么。Axis只允许我使用静态列,这很好,但我可以让客户购买50台


我认为答案将是开发一个计算表,但我以前从未这样做过,因此我不确定这将如何/是否起作用

为了实现你的目标,有一些事情需要改变。我将尝试解释在您的场景中发生了什么,然后为您可能的更改提供一些输入

为什么会得到这个结果?

当您将日期筛选器设置为2017年1月1日-2017年1月2日时,您的范围内还剩下以下购买(筛选器中的两个选定日期都包括在内):

当您在X轴上设置带有客户[购买]的条形图时,以及您的测量值

NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
在Y轴上,则有效地计算采购表中的[ID]数量,并将其显示为客户表中的相关[Purchases]值

根据你的客户表,艾莉森买了5件,比利买了2件。这些是静态值,不受日期筛选器的任何影响

COUNT()函数不返回[ID]的不同数目(您可以使用DISTINCTCOUNT()函数来实现这一点)。因此,您将在Y轴上看到值3(Alison在所选日期的采购表中出现三次),在X轴上看到值5(Alison根据您的客户表有5次采购)。比利也是这样

你可以通过什么改变来实现你的目标?

你想要完成的事情并不容易。您希望在一个轴上使用动态度量(所选期间内每个客户的购买数量),在另一个轴上使用另一个动态度量(所选期间内不同的客户数量)。这不能在PowerBI中完成。这里的问题是动态日期过滤器,它阻止您将购买数量预先计算为计算列

一种解决方案是创建一个新表,其中包含每个客户每月的购买数量。然后,您可以仅在一个月内使用过滤器,并在X轴上显示该月每位客户的购买数量。这是可能的,因为购买的数量是预先计算的数字(一列,而不是度量)。在Y轴上,可以使用如下测量:

CustomerCount = DISTINCTCOUNT(PurchasesPerMonth[CustomerID])

有一些事情需要改变,以实现你想要的。我将尝试解释在您的场景中发生了什么,然后为您可能的更改提供一些输入

为什么会得到这个结果?

当您将日期筛选器设置为2017年1月1日-2017年1月2日时,您的范围内还剩下以下购买(筛选器中的两个选定日期都包括在内):

当您在X轴上设置带有客户[购买]的条形图时,以及您的测量值

NameCount = CALCULATE( COUNT(Purchases[ID]), FILTER(Purchases, Purchases[ID] = RELATED(Customer[ID])))
在Y轴上,则有效地计算采购表中的[ID]数量,并将其显示为客户表中的相关[Purchases]值

根据你的客户表,艾莉森买了5件,比利买了2件。这些是静态值,不受日期筛选器的任何影响

COUNT()函数不返回[ID]的不同数目(您可以使用DISTINCTCOUNT()函数来实现这一点)。因此,您将在Y轴上看到值3(Alison在所选日期的采购表中出现三次),在X轴上看到值5(Alison根据您的客户表有5次采购)。比利也是这样

你可以通过什么改变来实现你的目标?

你想要完成的事情并不容易。您希望在一个轴上使用动态度量(所选期间内每个客户的购买数量),在另一个轴上使用另一个动态度量(所选期间内不同的客户数量)。这不能在PowerBI中完成。这里的问题是动态日期过滤器,它阻止您将购买数量预先计算为计算列

一种解决方案是创建一个新表,其中包含每个客户每月的购买数量。然后,您可以仅在一个月内使用过滤器,并在X轴上显示该月每位客户的购买数量。这是可能的,因为购买的数量是预先计算的数字(一列,而不是度量)。在Y轴上,可以使用如下测量:

CustomerCount = DISTINCTCOUNT(PurchasesPerMonth[CustomerID])