使用 Power Query 将单个文件夹中存储的具有相同架构的多个文件合并到一个表中。 例如,每月你想要合并多个部门的预算工作簿,这些工作簿的列数相同,但每个工作簿中的行数和值不同。 设置完成后,可以像处理任何单个导入的数据源一样应用其他转换,然后 刷新数据 以查看每个月的结果。
备注 本主题演示如何合并文件夹中的文件。 还可以合并存储在 SharePoint、Azure Blob 存储和 Azure Data Lake Storage 中的文件。 这个过程是类似的。
开始之前
请保持简单:
- 确保要组合的所有文件都包含在没有多余文件的专用文件夹中。 否则,该文件夹中的所有文件和您选择的任何子文件夹都将包含在要合并的数据中。
- 每个文件都应具有相同的架构,具有一致的列标题、数据类型和列数。 列的顺序不必与按列名称进行匹配的顺序相同。
- 如果可能,避免对可以具有多个数据对象的数据源(如 JSON 文件、Excel 工作簿或 Access 数据库)使用不相关的数据对象。
从文本、CSV 或 XML 文件导入
这些文件中的每一个都遵循一个简单的模式,即每个文件中只有一个数据表。
选择“数据>”“从文件夹中的文件>获取数据>”。 将显示“ 浏览 ”对话框。
找到包含要合并的文件的文件夹。
文件夹中的文件列表将显示在“文件夹路径>”<对话框中。 验证是否列出了所需的所有文件。
选择对话框底部的命令之一,例如“合并>”&“加载”。 关于 所有这些命令一节还讨论了其他命令。
如果选择任何“组合”命令,则将显示“组合Files”对话框。 要更改文件设置,请从 “示例文件” 框中选择每个文件,根据需要设置 “文件来源”、“ 分隔符”和 “数据类型检测 ”。 还可以选中或清除对话框底部的 跳过错误文件 复选框。
选择“确定”。
结果
Power Query 自动创建查询,以将每个文件中的数据合并到工作表中。 创建的查询步骤和列取决于选择的命令。 有关详细信息,请参阅关于 所有这些查询部分。
从 JSON 导入
选择“数据>”“从文件夹中的文件>获取数据>”。 将显示“ 浏览 ”对话框。
找到包含要合并的文件的文件夹。
文件夹中的文件列表将显示在“文件夹路径>”<对话框中。 验证是否列出了所需的所有文件。
选择对话框底部的命令之一,例如“组合>”、“组合”&“转换”。 关于 所有这些命令一节还讨论了其他命令。
将显示 Power Query 编辑器。
“值”列是结构化 列表 列。 选择“展开展开
图标,然后选择“展开到新行”。
值列现在是结构化 记录 列。 选择 “展开
。 将显示一个下拉对话框。
保持所有列选中。 可能需要清除“使用原始列名作为前缀”检查框。 选择“确定”。
选择包含数据值的所有列。 选择“ 开始”( 删除列旁边的箭头),然后选择“ 删除其他列”。
选择“开始>”,关闭“& 加载”。
结果
Power Query 自动创建查询,以将每个文件中的数据合并到工作表中。 创建的查询步骤和列取决于选择的命令。 有关详细信息,请参阅关于 所有这些查询部分。
从 Excel 或 Access 导入
其中每个数据源都可以有多个要导入的对象。 Excel 工作簿可包含多个工作表、Excel 表格或命名区域。 Access 数据库可以有多个表和查询。
选择“数据>”“从文件夹中的文件>获取数据>”。 将显示“ 浏览 ”对话框。
找到包含要合并的文件的文件夹。
文件夹中的文件列表将显示在“文件夹路径>”<对话框中。 验证是否列出了所需的所有文件。
选择对话框底部的命令之一,例如“合并>”&“加载”。 关于 所有这些命令一节还讨论了其他命令。
在 Combine Files 对话框中:
- 在 “示例文件 ”框中,选择要用作用于创建查询的示例数据的文件。 可以不选择对象或只选择一个对象。 但是,不能选择多个。
- 如果有多个对象,请使用 “搜索 ”框查找对象,或使用“ 显示选项 ”以及“ 刷新 ”按钮筛选列表。
- 选中或清除对话框底部的“ 跳过出错文件 ”复选框。
选择“确定”。
结果
Power Query 会自动创建一个查询,以将每个文件中的数据合并到工作表中。 创建的查询步骤和列取决于选择的命令。 有关详细信息,请参阅关于 所有这些查询部分。
使用 Combine Files 命令
为了提高灵活性,可以使用 Combine Files 命令在 Power Query 编辑器中显式合并文件。 假设源文件夹混合了文件类型和子文件夹,并且您希望以具有相同文件类型和架构的特定文件为目标,而不是其他文件。 这可以提高性能并帮助简化转换。
选择“数据>”“从文件夹中的文件>获取数据>”。 将显示“ 浏览 ”对话框。
找到包含要合并的文件的文件夹,然后选择“ 打开”。
文件夹和子文件夹中所有文件的列表将显示在“文件夹路径>”<对话框中。 验证是否列出了所需的所有文件。
选择底部的 “转换数据 ”。 Power Query 编辑器将打开并显示文件夹和任何子文件夹中的所有文件。
若要选择所需的文件,请筛选列,如“扩展名”或“文件夹路径”。
若要将文件合并到单个表中,请选择包含每个二进制文件 (通常是第一列) 的内容列,然后选择“主页>合并Files”。 将出现“合并文件”(Combine Files) 对话框。
Power Query 分析示例文件(默认情况下为列表中的第一个文件),以使用正确的连接器并标识匹配列。
要对示例文件使用其他文件,请从 “示例文件” 下拉列表中选择它。
(可选)在底部选择“ 跳过出错文件 ”,以从结果中排除这些文件。
选择“确定”。
结果
Power Query 会自动创建查询,以将每个文件中的数据合并到工作表中。 创建的查询步骤和列取决于选择的命令。 有关详细信息,请参阅关于 所有这些查询部分。
关于所有这些命令
您可以选择多个命令,每个命令都有不同的用途。
- 合并和转换数据若要将所有文件与查询合并,然后启动 Power Query 编辑器,请选择“合并合并和转换数据”>。
- 合并和加载 若要显示 “示例 文件”对话框、创建查询,然后加载到工作表,请选择“ 合并>和加载”。
- 合并并加载到若要显示“示例文件”对话框,创建查询,然后显示“导入”对话框,请选择“合并>”和“加载到”。
- 负载若要使用一个步骤创建查询,然后加载到工作表,请选择加载>加载。
- 加载到 要使用一个步骤创建查询,然后显示 “导入 ”对话框,请选择 加载>加载到。
- 转换数据若要使用一个步骤创建查询,然后启动 Power Query 编辑器,请选择“转换数据”。
关于所有这些查询
无论如何合并文件,都会在“帮助程序查询”组下的 “查询 ”窗格中创建多个支持查询。
- Power Query 基于示例查询创建“示例文件”查询。
- “转换文件”函数查询使用“Parameter1”查询将每个文件 (或二进制) 指定为“示例文件”查询的输入。 此查询还会创建包含文件内容的“ 内容 ”列,并自动展开结构化 “记录 ”列以将列数据添加到结果中。 “转换文件”和“示例文件”查询是链接的,以便对“示例文件”查询的更改反映在“转换文件”查询中。
- 包含最终结果的查询位于 “其他查询” 组中。 默认情况下,它以从中导入文件的文件夹命名。
如需进一步调查,请右键单击每个查询,然后选择 “编辑” 以检查每个查询步骤,并查看查询如何协同工作。