【问题标题】:powerquery: importing & transforming data from all Excel files in a folder where two tables on the same sheetpowerquery:从同一工作表上的两个表的文件夹中的所有 Excel 文件中导入和转换数据
【发布时间】:2016-05-05 09:30:12
【问题描述】:

我正在尝试使用 PowerQuery 加载和转换文件夹中多个文件的每个 "Sheet1" 中包含的数据。

我遇到的问题是"Sheet1" 中有两个表,我不知道如何组合这两个表,并保留共享的日期/工作日标题。

我在互联网上搜索无济于事。我没有发现从文件夹中的所有 Excel 文件中导入和转换数据的 PowerQuery 的引用,其中同一工作表中有 两个 表。

我包含两个表格的图像和所需的输出(前两行用于布局)。

注意:范围 Sheet1!"A2:B2" 已合并。

感谢您的任何帮助。

【问题讨论】:

    标签: excel import spreadsheet powerquery


    【解决方案1】:

    我会将 2 个表格更改为正确的 Excel 表格(例如,选择单元格、Ctrl-T 或插入/表格)。这将取消合并您的列标题。

    然后,您将在导航器中看到两个表作为条目(当您使用获取外部数据/从文件/从 Excel 时)。

    【讨论】:

      【解决方案2】:

      谢谢。这是我下面的 VBA 解决方案的一部分。

      最后我想出了两个解决方案。

      解决方案 1:VBA 脚本:遍历文件夹中的 Excel 文件并找到相关的表格标题。然后使用当前区域将粘贴复制到添加的工作表,例如

      ''Code to loop files then...
      
       Set rngAdm = Worksheets("Figures").Range("A:B").Find("Daily Admissions", lookat:=xlPart)
      
       If Not rngAdm Is Nothing Then
      
          'Add sheet for creating Admissions table
      
          Sheets.Add.Name = "Adm"
      
         'Grab data and paste across
      
         rngAdm.CurrentRegion.Copy Sheets("Adm").Range("A1")
      
         'Clear merged cell
      
         Range("A1:B2").UnMerge
      
         'Code to transform......
      

      然后我编写了一些脚本来转换成一个干净的数据集并制作成一个表格。

      解决方案 2:Powerquery - 使用两个查询循环文件夹中的文件,使用删除行>删除备用行功能指定模式以分别拉出感兴趣的表,然后转换数据,然后合并两个查询。它能够指定开始行的模式和行数以使我不知道,隐藏在删除行标题后面。

      注意事项: 我使用 VBA 循环遍历源文件夹并重命名文件,以便它们以正确的顺序加载。 然后我使用以下两个优秀的帖子来识别和删除重复项:

      http://forum.powerpivotpro.com/forums/topic/power-query-remove-duplicates-keep-highest-id/ http://www.excelguru.ca/blog/2015/12/09/identify-duplicates-using-power-query/

      通过对 ID 进行分组,结合排序 [Date] asc、排序 [Index] desc 和删除重复项 [ID],我能够只保留每个重复集的最后导入行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多