PowerBI中合并同结构年度表并提取指定州数据的实现方法
在Power Query Editor中合并多表并提取指定州数据的方法
步骤1:获取所有目标表的列表
新建空白查询,输入以下M代码,提取工作簿中所有以CGTMSE_开头的表:
let Source = #sections[Section1], ConvertToTable = Record.ToTable(Source), FilterTables = Table.SelectRows(ConvertToTable, each Text.StartsWith([Name], "CGTMSE_")), RenameColumns = Table.RenameColumns(FilterTables,{{"Name", "TableName"}, {"Value", "TableData"}}) in RenameColumns
这段代码会生成一个包含两列的表:TableName(表的名称)和TableData(对应表的原始数据)。
步骤2:批量处理每个表
选中TableData列,点击列标题旁的箭头,选择「转换 > 自定义列」,输入以下代码处理每个表:
let // 从表名提取财年信息 ExtractYear = Text.AfterDelimiter([TableName], "_"), // 加载当前表数据 LoadTable = [TableData], // 添加财年列 AddYearColumn = Table.AddColumn(LoadTable, "Year", each ExtractYear), // 筛选指定州(替换为你需要的州名) FilterState = Table.SelectRows(AddYearColumn, each [State] = "ARUNACHAL PRADESH"), // 保留需要的列 KeepRequiredColumns = Table.SelectColumns(FilterState, {"Year", "State", "Number of Cases", "Credit Amount", "Claims Settled"}) in KeepRequiredColumns
将自定义列命名为ProcessedTable,确认后每个表都会被添加财年列、筛选指定州并保留目标字段。
步骤3:合并所有处理后的表
选中ProcessedTable列,点击列标题旁的箭头,选择「扩展到新行」,再展开所有列(去掉自动生成的前缀),即可得到最终的合并表。
注意事项
- 若表不在默认的
Section1中,需将代码里的#sections[Section1]替换为对应section名称 - 筛选州时,确保州名的拼写、大小写与表内数据完全一致
- 后续新增
CGTMSE_开头的表,刷新查询即可自动纳入合并范围
内容的提问来源于stack exchange,提问作者Biswajit Das
相关产品推荐
相关产品推荐

