Power Query分组聚合时引用字段返回空列表问题求解
问题根因
代码的问题出在Table.Group聚合步骤的作用域上下文:在聚合的each代码块中,[Code]指代的是当前分组对应的子表的整列Code字段,是列表类型,而非当前分组对应的唯一Code值。拿列表和List_CODES里的数值做匹配,自然没有符合条件的结果,所以返回空列表。
修复方案
因为按Code分组后,每个分组内的所有行Code值都是相同的,只需要取该分组下任意一行的Code值做匹配即可,比如用List.First([Code])取分组内第一个Code值即可。
修正后的代码如下:
let Source = Excel.CurrentWorkbook(){[Name="tblCodes"]}[Content], mytable = Table.TransformColumnTypes(Source,{{"Code", Int64.Type}}), List_CODES=List.Buffer(mytable[Code]), Results= Table.Group(mytable, {"Code"}, {{"mylist", each List.PositionOf(List_CODES, List.First([Code]), Occurrence.All), type list}}) in Results
运行效果
在你给出的示例数据下,运行后返回结果符合预期:
- Code=1 对应 mylist 值为
{0, 3} - Code=13 对应 mylist 值为
{1, 4, 6} - Code=15 对应 mylist 值为
{2} - Code=8 对应 mylist 值为
{5}
内容的提问来源于stack exchange,提问作者David McKinney
相关产品推荐
相关产品推荐

