明明一步步的操作都沒錯,怎麼匯出的XML檔案內容看不懂。
學習XML檔案格式與實作系列:(2/6) 為什麼我匯入的XML不一樣?
- 2684
- 0
- Excel自助式BI
- 2025-03-25
明明一步步的操作都沒錯,怎麼匯出的XML檔案內容看不懂。
曾經在這個部落格園地,有了一系列學習Json檔案的介紹(學習Json檔案格式與實作系列),也受到部分讀者與學員的建議和鼓勵,再規劃XML檔案格式相關的話題,與大家分享使用Power Query匯入XML檔案的實例與情境。
[關閉並載入至…]怎麼不能用了,一直是許多使用過Power Query編輯器的人會碰到的困擾,就在此為大家解疑囉!
經由Power Query編輯器所整理完成的資料,在Excel環境裡有多種輸出選擇,譬如:可以僅建立連線就好,爾後可再隨時伺機運用;也可以直接作為樞紐分析表與樞紐分析圖的資料來源,輕鬆製作摘要統計報表與圖表;甚至亦可複本存放至資料模型,為資料關聯與數據分析做準備。
資料拆分是整理原始資料(Raw Data)的關鍵步驟,能夠直接影響後續分析的準確性與效率。Power Query的「分割資料行」功能正是為此設計。藉由拆分作業,可以將複雜或混雜的數據資料分解為更有意義的部分,以便進行分析和整理。並且符合資料庫正規化原則,也能利於與其他系統的整合。
Power Query查詢編輯器提供了清晰直觀的操作環境,透過查詢列表的導覽,可快速切換和管理各個建立的查詢;右側的查詢設定工作窗格則鉅細靡遺地列出所有查詢步驟,方便使用者追蹤和修改。工具列上也提供常用功能選項,諸如篩選、排序和格式轉換。要成為資料整理大師,您肯定要熟悉Power Query查詢編輯器作業環境。
CSV(Comma-Separated Values)是一種簡單且普遍的輕量級的純文字資料格式,用來儲存表格數據。每欄(資料行)的資料均以逗號分隔,資料列則以換行標記,其特性包括結構簡單、易讀寫,且兼容幾乎所有數據處理工具(如 Excel、Python、Power Query)。檔案體積小、解析高效,並可跨平台使用,無需專用軟體即可編輯。廣泛應用於數據交換、資料庫匯入/匯出及分析領域,是數據科學和商業報表中最普及的格式之一。所以,許多企業、政府單位、機關團體、資訊系統等各領域廣受歡迎。
光就Query這個單字,就可以揣測得到肯定是與資料「查詢」相關的工作,再加上Power這個字眼,翻譯成「超級查詢」應該也不為過!只要學會這個工具,對於大量資料、結構性資料、非結構化資料的整理、篩選、彙整,將會更加輕鬆、有效率,到時可就回不去囉!
愈來愈多人喜歡Power Query了,我發現許多Excel使用者或者資料處理的工作者,愈來愈仰賴Power Query來進行資料的匯入、拆解、轉換、組合、…等等作業。而從一些來自學員、讀者的提問與疑惑中,也發覺到他們大大小小的困擾,尤其是若要進行更進一步的資料轉換時,基於並非資訊專業人員,資料庫基礎觀念涉獵不多,卡關的情境屢見不鮮,於是有了撰寫這系列文章的念頭。就從Power Query與Excel和Power BI的關係開始講起囉!
常見的JSON實務範例,裡面包含的物件是層層疊疊的,物件裡有清單、清單裡有物件,對應到Power Query編輯器的M語言,熟識List、Record、Table等容器後,會有更清楚的脈絡與思維,在資料轉換的操作上更有莫大的幫助。
前面為大家普科了JSON檔案格式的架構,並不是要讓大家無中生有的去撰寫JSON格式資料檔,因為,可以轉換與解析JSON檔案格式的工具及應用程式很多,筆者只是希望大家至少能看得懂簡單的JSON檔案格式,因為,未來勢必會有很多接觸JSON檔案格式的機會。而後來又跟大家講解了Power Query環境下的M語言,尤其是三大容器List、Record、Table,筆者的目的也不是要讓大家使用這些容器來建立資料,而是在使用Power Query匯入各種類型的外部資料來源時,譬如:JSON檔案、XML檔案,您就會很容易理解所匯入的資料元素是什麼,包含了哪些物件、含括了什麼成分,以及如何去展開與剖析。
Power Query在處理資料、解析資料的基礎上,並不僅僅是針對文字、數值、日期與時間等類型的資料而已,資料結構中的資料表、資料欄位、資料記錄,也都有其對應的儲存體,我們稱之為容器。在Power Query的資料結構中,會涉獵到資料表(Table)、記錄(Record)、清單(List)等容器,更是儲存與擷取結構化資料的重要元素,若要了解資料的深化、探勘、萃取、轉換、…等技巧,就必須深入了解這三大容器的關係、轉換、編碼與相關函數的運用。雖說使用Power Query操作介面與功能選單,就可以達到資料查詢的目的,但多方瞭解這些容器的標示方式,將有助於您再匯入JSON、XML等資檔案時,會有莫大的助益。
前一篇文章我們提到「JSON 物件基本上就是 JavaScript 物件」,而這敘述在大多數情況下都對。正如同標準的JavaScript物件,我們可在JSON內加入相同的基本資料型別,諸如:字串、數字、陣列、布林值,以及其他物件,也能同樣再建構出資料繼承,因此,非常適合結構化資料的儲存與傳遞。
資料、數據的傳遞在資訊蓬勃發展的今天,幾乎是不可避免、天天上演的劇情。譬如:手機訊息的傳遞、網絡檔案的分享、各種平台的資料下載,都是您我經常面臨的情境。而資料檔案的格式雖然多元,多變,普遍且具優勢的格式並不多,但其中的Json檔案格式被許多資源、系統與平台廣泛採用,不論您是否具備資訊背景,絕對是易懂易學且十分值得您花點時間認識與運用的。
完成員工專長需求的查詢介面設計後,測試一下各種情境的需要,檢視Power Query的運作與Excel的參數規劃是否符合我們的需求。
萬事具備了,我們就開始來建立選取專長項目後的名冊輸出,以顯示出到底有哪些員工符合我們的專長需求囉!因此,再度進入Power Query編輯器,以[員工專長列表]查詢結果來進行這項任務。
建立查詢是查找資料的基本,而查詢的比對準則內容,可以來自工作表上的儲存格,也就是利用儲存格的內容,做為查詢的比對參數,是直覺又便利的查詢操作介面設計。
上一篇文章【從Power Query實作認識「基元值」(Atomic Value)】的說明與實作中,我們將一份非結構資料,透過Power Query編輯器的操作,建立了兩張資料表,並載入到Power Pivot的資料模型裡,進行關聯式資料庫的建立。接著我們就延續這份資料,準備建構出員工專長查詢介面設計與應用。
上一篇文章我們使用Power Query編輯器實作了將非結構化資料表轉換成結構化資料的DAW DATA,也從範例中介紹了「基元值」(Atomic Value)這個專有名詞。然而,這份DAW DATA仍不是完美的關聯式資料表,理由是重複性資料站多,主要索引關鍵欄位也需要建構與釐清。
在關聯式資料庫系統中,常聽到「基元值」(Atomic Value)這個專有名詞,許多非資訊背景的工作者,常有不知所措、不易理解的窘境。在此就以Excel處理資料,轉換資料的概念,為大家說明與實作。