如何在Power BI Desktop中基于参数生成指定格式的表格
在Power BI Desktop中自动生成按列填充的参数化表格
可以实现,通过Power Query编辑器的参数化M语言代码,就能根据设置的每列行数(你说的窗口大小)和总列数自动生成目标格式的表格,具体步骤如下:
1. 创建可配置参数
打开Power Query编辑器,点击「主页」>「管理参数」>「新建参数」,分别创建两个参数:
每列行数:类型选「数字」,当前值设为16(你的示例窗口大小)总列数:类型选「数字」,当前值设为7(对应你提到的七列Y轴数据)
2. 编写M代码生成表格
新建一个空白查询,打开高级编辑器,替换原有代码为以下内容:
let 总数据量 = 每列行数 * 总列数, 数字序列 = List.Numbers(1, 总数据量), 转换为表 = Table.FromList(数字序列, Splitter.SplitByNothing(), {"数值"}), 添加列号 = Table.AddColumn(转换为表, "列号", each Number.IntegerDivide([数值]-1, 每列行数) + 1), 添加行号 = Table.AddColumn(添加列号, "行号", each Number.Mod([数值]-1, 每列行数) + 1), 透视表格 = Table.Pivot(添加行号, List.Distinct(添加行号[列号]), "列号", "数值"), 移除行号列 = Table.RemoveColumns(透视表格,{"行号"}) in 移除行号列
3. 逻辑说明
- 先通过
每列行数×总列数计算出需要生成的总数字个数,生成从1开始的连续序列 - 用整数除法
Number.IntegerDivide判断每个数字属于第几列,模运算Number.Mod判断属于第几行 - 通过透视操作将列号转为表头,按行号分组,最终得到按列向下填充的表格
4. 调整参数更新表格
后续如果需要修改行数或列数,直接回到「管理参数」修改每列行数或总列数的数值,刷新查询后表格会自动更新为新的格式。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

