Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 按类别分列的前N名_Powerbi_Powerbi Desktop - Fatal编程技术网

Powerbi 按类别分列的前N名

Powerbi 按类别分列的前N名,powerbi,powerbi-desktop,Powerbi,Powerbi Desktop,我正在进行以下计算;我尝试了不同的解决方案,但未能获得所需的输出。 示例表如下所示,包含ID、金额、类别、类型 我有一个饼图,显示了现金和信用卡的划分。此外,我还创建了一个度量来确定每个类别的平均金额,如下所示 AverageExpenseType = AVERAGEX( SUMMARIZE('Data', 'Data'[Category], "Total Spent", AVERAGE('Data'

我正在进行以下计算;我尝试了不同的解决方案,但未能获得所需的输出。 示例表如下所示,包含ID、金额、类别、类型

我有一个饼图,显示了现金和信用卡的划分。此外,我还创建了一个度量来确定每个类别的平均金额,如下所示

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中首先创建了自定义表?是的,我已经创建了自定义表并完美地获得了平均值。如果可能,请在此处提供自定义表和度量值创建代码。不幸的是,由于限制,我可能无法共享自定义表:-(