PowerBI数据准备—合并同表头的sheet
一、手动追加少量 Sheet 手动追加适合 Sheet 少、不经常新增工作表缺点后续 Excel 新增 Sheet必须重新导入、手动加到追加列表无法自动识别。1、导入所有工作表获取数据—Excel—打开导航器2、在导航器勾选所有要合并的 Sheet不要点【加载】点击【转换数据】进入 Power Query 编辑器3、追加查询—将查询追加为新查询选择三个或更多表将所有sheet添加到要追加的表生成合并表。4、清洗 加载处理空行/数据类型等二、自动合并推荐新增 Sheet 自动合并无需改查询原理用Excel.Workbook()读取整个 Excel 文件所有 Sheet筛选有效工作表后批量展开合并后续 Excel 新增同结构 SheetPowerBI 一键刷新就能自动加入汇总表实现完全自动化。前提条件所有待合并 Sheet表头文字完全一致空格、大小写不能有差异数据从第 1 行表头开始无上方多余标题、合并单元格1、主页 → 获取数据 → Excel 工作簿选中文件右键文件 → 转换数据不勾选任何 Sheet生成总表包含列Name(工作表名)、Kind、Data(表格内容)、Hidden(是否隐藏)2、筛选只保留工作表排除图表 / 宏等Kind列筛选只勾选SheetHidden列取消勾选 True排除隐藏工作表Name列文本筛选匹配想要的命名3、展开 Data 列提取每个 Sheet 的数据4、提升第一行为表头统一表头【主页】-【将第一行用作标题】5、在任何一列上点击列标题上的筛选按钮选择文本筛选让它的值不等于这一列的标题名称用来把其他Sheet的表头去掉。6、点击列标题左侧的类型图标按需修改每列的字段类型。关闭并应用即可。完成后在Excel表中新增 Sheet 页。回到 Power BI 中在【报表视图】下【刷新】即可获取最新的Sheet 数据三、M 代码实现M 是Power Query 的专属脚本语言全称 M Formula Language。因为涉及到代码逻辑修改与调试所以上手有难度1-在哪里看 / 改PowerBI 顶部菜单转换数据 → 进入 Power Query 编辑器顶部找到【主页】→【高级编辑器】窗口里整段文字就是完整 M 代码如果存在代码let // 替换为你的Excel完整路径 FilePath C:\数据\汇总表.xlsx, // 读取整个工作簿所有对象 Source Excel.Workbook(File.Contents(FilePath), null, true), // 筛选仅工作表、非隐藏、匹配命名按需修改筛选条件 FilterSheet Table.SelectRows(Source, each [Kind] Sheet and [Hidden] false), // 提取每个Sheet的数据表 ExpandData Table.ExpandTableColumn(FilterSheet, Data, {Table}, {SheetData}), // 跳过空表 RemoveEmpty Table.SelectRows(ExpandData, each not Table.IsEmpty([SheetData])), // 每个表统一提升表头 PromoteHeader Table.TransformColumns(RemoveEmpty, {SheetData, each Table.PromoteHeaders(_, [PromoteAllScalarstrue])}), // 合并所有Sheet CombineAll Table.Combine(RemoveEmpty[SheetData]), // 添加来源工作表名称列 AddSheetName Table.AddColumn(CombineAll, 来源工作表, each ExpandData[Name]{[Index]}) in AddSheetName