Power Query三大容器實作系列 - (4/7) 向下切入:深化(擷取)容器裡的內容

在操作Power Query的過程,無疑就是處理資料過程,而過程中的每一個步驟即為M語言所執行查詢步驟,而查詢結果裡若有容器類型的資料,除了可以當下預覽(不用產生額外步驟)外,也可以探勘該容器的內容,也就是擷取該容器的內容步驟為「深化」或「向下切入」。

在此就以一個內容包含了不同資料型態的[混合內容的清單]來為大家演練一下預覽查詢內容與展開容器內容的操作。在這清單裡包了文字、數字清單的元素。

若要顯示清單元素的內容,只要在查詢結果的畫面上點按此元素即可。隨即在查詢結果畫面的下方將分割出顯示區,顯示著該選取元素的內容,由於這只是預覽查詢結果,右側[套用的步驟]裡的查詢步驟並沒有任何影響。

有些朋友可能會覺得上述的操作與說明是不是怪怪的!點按List(清單)裡的某個元素後,立即在畫面下方顯示該元素內容,這不是多此一舉嗎?因為,光從這個List查詢結果畫面就可以看到每一個元素的內容了,何必再點按它來預覽它呢?其實,那是因為我們剛剛點按的清單元素是單純的文字資料型態,若點選的清單元素內容是數值型態,也會是如此的狀況。因此,數值與文字是純量,是屬於已經無法再深入探索的單純內容了。但是,若是面對諸如List、Record、Table等具備結構化的元素,可就不一樣了!因為,在查詢結過上,僅憑List、Record、Table等等字眼是看不出其實質內容的。譬如下圖所示,查詢結果裡有一個List元素,光看這個字並不瞭解該List的內容為何,此時,便可以藉由資料的檢視操作,點按一下List這個文字右側的空白處(不是直接點按List這個文字喔!),便可以在查詢結果下方開啟資料內容檢視區,看到該清單的內容,而這個行為並非真的要處理該List,因此並不會添增任何查詢步驟。

然而,若是真的要萃取該容器的內容,也就是深化(擷取)該容器裡的內容,那可就是真的要執行新的查詢步驟了!若有此需求,可以將滑鼠游標移至查詢結果畫面資料型態為容器的名稱上,此時滑鼠指標將呈現如同超連結般的手指圖示狀,點按一下,便立即展開該容器而取擷取了該容器的內容,因此,當下的查詢結果便是該容器的內容。以剛剛的例子為例,點按了List就不是預覽檢視了,而是扎扎實實的多了一個查詢步驟,查詢結果便是此清單的內容。這個操作觀念也稱之為[向下切入]的操作。

此外,若是以滑鼠右鍵點按查詢結果畫面裡資料型態為容器的資料格空白處,可以顯示快顯功能表,再從中點按[向下切入]功能選項,即表示要根據此查詢內容,再進行深化,意即擷取其更深入的內容。如下圖所示的範例,針對List再度展開(向下切入)後,顯示了此清單內容共有"美式咖啡"、"柳橙汁" 與 "烏龍茶" 等3個元素的查詢結果。既然執行了[向下切入]功能操作,亦算是添增了一個深入擷取資料內容的查詢步驟。因此,在查詢設定工作窗格裡的[套用的步驟]內,理所當然地又多了一個新的查詢步驟。

不僅僅是針對List資料型態的查詢結果在進行[向下切入]後會有上述的反映,只要是屬於諸如Record、Table等結構化的資料型態,都可以透過後續[向下切入]的操作,再深化而擷取其內容。此外。除了利用前述快顯功能表[向下切入]的操作來成資料的深化外,當滑鼠游標停在查詢結果畫面的該元素內容上,也會顯示超連結的手指圖示,只要點按一下也是[向下切入]的操作喔!

有趣的實驗來了,若查詢結果是文字內容,已經是最基本、最單純且無法再深化的資料了,所以,再對其進行[向下切入]功能操作,會有甚麼影響呢?

當然就是將此內容萃取出來,而其值為文字型態的內容,因此,到此的最終查詢結果就是文字資料囉!相同的概念,若是面對數值型資料的查詢結果進行[向下切入]功能操作,查詢結果也會是相同的數值型態。

 

前一篇:<<Power Query三大容器實作系列 - (3/7) Power Query List的建立與編輯>>
下一篇:<<Power Query三大容器實作系列 - (5/7) – 關於List的索引值>>