Power Query如何基于param_row_req参数值动态筛选行数作为最后步骤
实现方案
你只需要在原有查询的let语句块末尾新增一个动态筛选步骤即可,修改后的完整代码如下:
let Source = table1, #"Grouped Rows" = Table.Group(Source, {"Year", "Period"}, {{"EffDate", each List.Max([EffDate]), type nullable date}}), #"Inserted Merged Column" = Table.AddColumn(#"Grouped Rows", "Merged", each Text.Combine({Text.From([Year], "en-GB"), Text.From([Period], "en-GB")}, ""), type text), // 新增动态行筛选步骤 #"Dynamic Filter Rows" = Table.FirstN(#"Inserted Merged Column", if param_row_req = 1 then 1 else Table.RowCount(#"Inserted Merged Column")) in #"Dynamic Filter Rows"
逻辑说明
- 核心调用
Table.FirstN函数实现:该函数会返回表的前N行数据,当N值大于等于表总行数时,会直接返回整张表,刚好匹配你的需求 - 条件分支规则:
- 当
param_row_req等于1时,指定只返回前1行 - 当
param_row_req大于1时,直接取当前表的总行数作为N值,实现保留全部行的效果
- 当
- 可选优化:如果有指定返回第一行的排序规则,可以在新增筛选步骤之前先加一步
Table.Sort排序逻辑,避免返回的第一行不符合预期 - 注意:请提前在Power Query中创建好名为
param_row_req的整数类型参数
内容的提问来源于stack exchange,提问作者Student of the Digital World
相关产品推荐
相关产品推荐

