编辑:我愿意接受任何建议,不仅是Power Pivot,还有Power Query(M功能)或Power BI或其他任何可行的建议。感谢。
我们正在尝试在Excel / Power BI中创建模型(使用Power Query或Power Pivot或任何可行的模型),以便通过其最佳产品(基于排名系统)对客户进行分类。
我们采用的第一种方法是按最低排名(或每个最佳产品品牌)计算客户数。 (灵感来自博客https://stackoverflow.com/questions/15742186/powerpivot-dax-dynamic-ranking-per-group-min-per-group)
在我们完成的步骤之下: - 在PowerPivot模型中,我们创建了分类和客户表,如下面的示例所示。
在同一模型中,我们添加了一个计算列,其中包含以下公式,以获得每位客户的最低排名。
=MINX (
FILTER ( ALLSELECTED ( Customers ); [Customer_ID] = EARLIEST ( [Customer_ID] ) );
[Ranking]
)
在Excel的数据透视表中,我们将计算列放在行中。
然后,我们在数据透视表值中使用了计算客户的不同聚合。 这给了我第一个期望的结果。 (下面的例子是Pivot_Table.Selection1)
现在,当我们想要添加更多分析轴时,就出现了问题。 例如,除了产品品牌之外,我们希望将产品类型设置为列,并且我们希望每次添加/删除轴时都会重新计算我们的度量。 换句话说,我们希望每个最佳产品和每个产品类型都有不同的客户数。 此外,我们希望第二个属性(轴)是可变的,并且每个组的分组或不同计数是动态的。
示例:
假设我们的模型中有表格分类和客户:
在我们尝试的第一种方法中,我们得到了下表:Pivot_Table.Selection1:
现在,当我们添加分析轴时,我们希望得到以下示例:Pivot_Table.Selection2:
但我们有这个:
正如您所看到的,本集团应该有一个客户为“梅赛德斯”,一个用于“雷诺”,因为根据产品类型,客户A的顶级卡车是雷诺,其顶级车型是“梅赛德斯”。 但是,在数据透视表中,梅赛德斯组显示为卡车(在我们的数据集中甚至不存在)。
任何帮助或意见都将受到高度赞赏。
非常感谢您的回复。
此致 拉米&弗朗兹。
答案 0 :(得分:0)
最后,我认为我理解了您的问题,客户可以拥有不同的Product_Brand值,您只想计算其排名最低的Product_Brand。
在这种情况下,这是一个可能的解决方案:
在Minimum Rank
表格中创建一个名为Customer
的计算列。
=
CALCULATE (
MIN ( [Ranking] );
FILTER ( Customer; [Customer_ID] = EARLIER ( Customer[Customer_ID] ) )
)
然后创建一个度量,让我们说Customer ID Distinct Count
来计算Rank等于该客户最小值的那些行。
Customer ID Distinct Count :=
CALCULATE (
DISTINCTCOUNT ( Customer[Customer_ID] );
FILTER ( Customer; [Ranking] = [Minimum Rank] )
)
你会得到这样的东西:
如果有帮助,请告诉我。