[英]Microsoft Power BI Designer data model to Excel or PowerPivot
[英]Dynamic Grouping in Power BI/PowerPivot Model based on a calculated field
我们正在尝试在 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 的数据透视表中,我们将计算的列放在行中。
然后,我们在数据透视表值中使用了客户的Count 不同聚合。 ——这给了我第一个想要的结果。 (以下示例 Pivot_Table.Selection1)
现在,当我们想要添加更多分析轴时,问题就来了。 例如,除了产品品牌之外,我们希望在列中包含产品类型,并且我们希望每次添加/删除轴时都重新计算我们的度量。 换句话说,我们希望每个最佳产品和每个产品类型都有不同的客户数量。 此外,我们希望第二个属性(轴)是可变的,并且分组或每组的不同计数是动态的。
示例:
假设我们的模型中有分类表和客户表:
在我们尝试的第一种方法中,我们得到了下表:Pivot_Table.Selection1:
现在,当我们添加分析轴时,我们希望有以下示例:Pivot_Table.Selection2:
但是我们有这个:
如您所见,“Mercedes”组应该有一个客户,“Renault”组应该有一个客户,因为根据产品类型,客户 A 的顶级卡车是雷诺,其顶级汽车是“梅赛德斯”。 然而,在数据透视表中,梅赛德斯组显示为卡车(在我们的数据集中甚至不存在)。
我愿意接受任何建议,不仅是 Power Pivot,还有 Power Query(M 函数)或 Power BI 或任何可行的建议。
最后我想我明白了你的问题,一个客户可以有不同的 Product_Brand 值,你只想计算其排名最低的那些 Product_Brand。
在这种情况下,这是一个可能的解决方案:
在Customer
表中创建一个名为Minimum Rank
的计算列。
=
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] )
)
你会得到这样的东西:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.