Powerbi 按类别分列的前N名
我正在进行以下计算;我尝试了不同的解决方案,但未能获得所需的输出。 示例表如下所示,包含ID、金额、类别、类型 我有一个饼图,显示了现金和信用卡的划分。此外,我还创建了一个度量来确定每个类别的平均金额,如下所示Powerbi 按类别分列的前N名,powerbi,powerbi-desktop,Powerbi,Powerbi Desktop,我正在进行以下计算;我尝试了不同的解决方案,但未能获得所需的输出。 示例表如下所示,包含ID、金额、类别、类型 我有一个饼图,显示了现金和信用卡的划分。此外,我还创建了一个度量来确定每个类别的平均金额,如下所示 AverageExpenseType = AVERAGEX( SUMMARIZE('Data', 'Data'[Category], "Total Spent", AVERAGE('Data'
AverageExpenseType =
AVERAGEX(
SUMMARIZE('Data',
'Data'[Category],
"Total Spent", AVERAGE('Data'[Amount])),
[Total Spent])
我需要创建一个表,其中前5个ID的数量大于相应类别和类型的平均值。i、 例如,当我在饼图中选择现金时,平均值也需要根据现金或卡计算
例如,A类现金的平均值为4710,输出如下所示,其中ID大于A类和现金类型的平均值
您可以使用以下代码在表中创建自定义列-
category_type_wise_average =
VAR current_category = pie_chart[category]
VAR current_type = pie_chart[type]
VAR category_wise_average =
AVERAGEX(
FILTER(
pie_chart,
pie_chart[category] = current_category
&& pie_chart[type] = current_type
),
pie_chart[amount]
)
RETURN category_wise_average
pie_group_average =
VAR sub_category_wise_total =
GROUPBY (
pie_chart,
pie_chart[category],
pie_chart[type],
"average",AVERAGEX(CURRENTGROUP(), pie_chart[amount])
)
RETURN
SELECTCOLUMNS (
sub_category_wise_total,
"category",pie_chart[category],
"type",pie_chart[type],
"average",[average]
)
现在,您将在每一行中获得类别和类型方面的平均值,如下图所示。现在,您可以根据需要应用必要的筛选
解决方案2:
现在,如果您觉得在生成具有每行平均计算的自定义列时存在性能问题,您可以使用相同的结果尝试下面的选项-
第1步:
使用以下代码创建一个新的自定义表-
category_type_wise_average =
VAR current_category = pie_chart[category]
VAR current_type = pie_chart[type]
VAR category_wise_average =
AVERAGEX(
FILTER(
pie_chart,
pie_chart[category] = current_category
&& pie_chart[type] = current_type
),
pie_chart[amount]
)
RETURN category_wise_average
pie_group_average =
VAR sub_category_wise_total =
GROUPBY (
pie_chart,
pie_chart[category],
pie_chart[type],
"average",AVERAGEX(CURRENTGROUP(), pie_chart[amount])
)
RETURN
SELECTCOLUMNS (
sub_category_wise_total,
"category",pie_chart[category],
"type",pie_chart[type],
"average",[average]
)
第二步:
现在在主表中创建一个自定义列,如下所示-
category_type_wise_average_2 = LOOKUPVALUE(
pie_group_average[average],
pie_group_average[category],pie_chart[category],
pie_group_average[type],pie_chart[type]
)
此度量现在将保留与我们在解决方案1中使用自定义列生成的值相同的值
其他步骤:
第三步:
请创建另一个自定义列作为-
show_hide =
IF(
pie_chart[amount] >= pie_chart[category_type_wise_average_2],
1,
0
)
第四步:
如下图所示,添加这2个可视级别过滤器-
数据显示的逐步变化如下所示-
category_type_wise_average_2 = LOOKUPVALUE(
pie_group_average[average],
pie_group_average[category],pie_chart[category],
pie_group_average[type],pie_chart[type]
)
希望这对你有帮助 能否添加所需的示例输出?在寻找前10名时,请再添加一些示例数据。@mkRabbani对延迟表示歉意。我已经更新了示例数据和输出。我试图复制解决方案2,但步骤2部分出现错误。错误是“无法确定表饼图中“类别”列的单个值。此外,它似乎提到了类似“不指定聚合的值”的内容。我不确定是否遗漏了任何内容。您是否在步骤1中首先创建了自定义表?是的,我已经创建了自定义表并完美地获得了平均值。如果可能,请在此处提供自定义表和度量值创建代码。不幸的是,由于限制,我可能无法共享自定义表:-(