天天看點

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

作者:自由超

工作中最常用的一個場景是有個檔案夾,按照每天或每周的頻次往裡面放資料進行存檔,檔案格式通常為excel、csv、xml格式。然後通過Power BI對檔案夾中的資料進行擷取,處理形成固定的報表。按照正常的Power Query擷取檔案夾的方法,我們可以順利的擷取檔案夾的資料,但是常常在查詢視窗中自動生成至少5個莫名其妙的查詢,看起來非常混亂。當擷取的檔案夾數量多的時候,更是難以管理。本文将分享更好的方法來擷取檔案夾資料,并且隻有1個查詢。

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

目錄

  • 1.Power Query正常擷取檔案夾檔案:自動生成5個查詢
  • 2. 5個查詢簡化為1個查詢方法
  • 3.Power Query擷取檔案夾中的Excel檔案:1個查詢
  • 4.Power Query擷取檔案夾中的CSV檔案:1個查詢
  • 5.Power Query擷取檔案夾中的Xml格式檔案:1個查詢

1.Power Query正常擷取檔案夾檔案:自動生成5個查詢

1.1第一步:連接配接檔案夾

資料》擷取資料》來自檔案》從檔案夾》查找打開要添加的檔案夾

也可以建立一個空白查詢,輸入導入檔案夾的通用M函數,隻需要更換檔案夾位址即可:

=Floder.Files(”檔案夾位址”)
Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢
Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

通過檔案夾擷取資料後,基本都是固定抓取生成以下8個字段内容:

  • Content:檔案二進制内容
  • Name:檔案名稱
  • Extention:檔案類型
  • Data accessed:檔案通路日期
  • Data modified:檔案修改日期
  • Data created:檔案建立日期
  • Attributes:檔案屬性
  • Folder path:檔案位址
Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

1.2第二步:展開資料

在【Content】旁邊有連個向下的箭頭,點選就可以展開所有資料。這種方法可以批量擷取檔案夾中的資料,唯一的是會自動生成5個莫名其妙的查詢,對于管理來說十分不友善。

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

2. 将5個查詢簡化為1個查詢方法

如果想把5個查詢簡化成1個查詢,方法就是在添加完檔案夾之後,我們先不要展開資料,添加【1個自定義列】。

添加完自定義列之後在展開資料。

這裡面的關鍵是添加的自定義列要輸入抓取excel、csv、xml等格式的M函數。

3.Power Query擷取檔案夾中的Excel檔案:1個查詢

3.1添加自定義列

在擷取檔案夾之後不要急着展開資料,添加【自定義列】

Excel類型檔案,輸入以下M函數代碼,函數裡面的【true】預設會把第一行提升為标題,減少後續提升标題操作:

=Excel.Workbook([Content],true)

3.2删除不需要保留的列

3.3展開自定義列抓取的資料

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

4.Power Query擷取檔案夾中的CSV檔案:1個查詢

4.1添加自定義列

在擷取檔案夾之後不要急着展開資料,添加【自定義列】

CSV格式的檔案,添加自定義列,輸入以下M函數代碼,會預設把第一行提升為标題,減少後續提升标題操作:

=Table.PromoteHeaders(Csv.Document([Content]),[PromoteAllScalars=true])

4.2删除不需要保留的列

4.3展開自定義列抓取的資料

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢

5.Power Query擷取檔案夾中的Xml格式檔案:1個查詢

5.1添加自定義列

在擷取檔案夾之後不要急着展開資料,添加【自定義列】

Xml格式的檔案,添加自定義列,輸入以下M函數代碼,會預設把第一行提升為标題,減少後續提升标題操作:

=Xml.Tables([Content])

5.2删除不需要保留的列

5.3展開自定義列抓取的資料

Power BI從檔案夾擷取excel、csv、xml檔案,簡化5個查詢為1個查詢