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

Looping entites and getting top 10 of each entity in Power Query / DAX / Power BI

我有这样的需求,

一个来源和 10 个实体 我需要每个实体 10 次运行数据。

例如.,

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

我试图在 Power BI 中完成这项工作。我有 200 条记录的全部数据,但是当我对每个具有前 10 名的实体进行排序时,我必须只能获得 100 条记录。 关于如何在 DAX 或 Power Query 中执行此操作的任何帮助

提前致谢。

在 Power Query 中,您可以使用运算符 "All Rows" 对实体进行分组,将自定义步骤(下面的 "Max10Runs")添加到 select 前 10 名,然后使用嵌套展开列表(仅字段 "Runs")。

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"