在Power Query / DAX / Power BI中,循环引入并获得每个实体的前10名

时间:2017-05-16 12:53:43

标签: excel powerbi dax powerquery

我有一个像。,

这样的要求

One Source和10 entites 我需要每个人都有10个运行数据。

例如。,

     Source1  Entity1 ( top 10 )
     Source1  Entity2  ( top 10)
     ....
     ...
     Source1  Entity10 ( top 10)

我在Power BI中尝试完成此操作。我拥有200条记录的全部数据,但是当我按每个实体排序前10名时,我必须能够只获得100条记录。 有关如何在DAX或Power Query

中执行此操作的任何帮助

提前进入Thnanks。

1 个答案:

答案 0 :(得分:1)

在Power Query中,您可以使用运算符“All Rows”对Entity进行分组,添加自定义步骤(下面的“Max10Runs”)以选择前10个,然后使用嵌套表(仅“运行”字段)展开列。

let
    Source = Source,
    #"Grouped Rows" = Table.Group(Source, {"Entity"}, {{"AllData", each _, type table}}),
    Max10Runs = Table.TransformColumns(#"Grouped Rows",{{"AllData", each Table.MaxN(_, each [Runs], 10)}}),
    #"Expanded AllData" = Table.ExpandTableColumn(Max10Runs, "AllData", {"Runs"}, {"Runs"})
in
    #"Expanded AllData"