Power Query三大容器實作系列 - (3/7) Power Query List的建立與編輯

這一篇文章先來跟大家介紹List(清單)容器的特性與使用方式。在Power Query裡List容器是一種存儲單一值序列的資料結構,類似於其他編程語言中的陣列或集合。它非常適合處理簡單的資料列表,例如一系列數字、文字或日期。在 Power Query 中,List 是一種基本資料類型,經常在資料轉換或處理過程中使用。

List的建立與編輯

在M語言裡是以一對大括號來代表一個List(清單),在建立與描述List裡的元素時,元素彼此之間要以逗點分隔。例如下列是一個包含了9個元素,且都是數值資料類型的List。

={2,5,9,11,6,5,3,10,30}

是不是很類似小時候學習數學時的 集合 表達方式。

其他諸如以下的寫法,都是建立List的概念:

={2,5,9,11,6,5,3,10,30},

={"ChatGPT","Copilot","Gemini","DeepSeek"},

={"蘋果","柳丁","葡萄","鳳梨","火龍果","香蕉"},

={"新竹","台北","高雄","桃園","新北市","屏東"},

={"蘋果","葡萄","鳳梨","UBike",10,30}

注意:List(清單)裡面的元素如果是文字型態的資料,記得,一定要用一對雙引號囊括起來喔!說不如做,我們就實際開始List的實作吧!首先,在Excel環境裡執行[資料]/[取得資料]/[啟動Power Query編輯器],啟動Power Query編輯器應用程式視窗。

在左側查詢導覽窗格裡,以滑鼠右鍵點按空白處,再從展開的快顯功能表中點按[新增查詢]/[其他來源]/[空白查詢]功能選項。

一開始建立的空白查詢其預設名稱為「查詢1」,並沒有任何要執行的程式編碼,而查詢結果的預設資料型態是文字型態,因此,會是個ABC的圖示。查詢名冊。

我們直接在資料編輯列上輸入:

={23,5, "蘋果","葡萄","鳳梨", "UBike",10,30}

這便是建立一個清單最簡易的方式。由於這查詢結果是一個清單,因此查詢圖示再也不是ABC,而是切切實實的清單圖騰模樣。此外,由於此查詢目前正處理使用中,所以,除了畫面中央查詢結果窗格裡可以看到List(清單)資料型態輸出內容外,視窗上方也可以看到Power Query編輯器亦提供了清單工具的操作介面與環境。當然,我們也可以將原名為查詢1名稱改成更貼切的查詢名稱。

List(清單)資料型態也具備了幾項特性,例如:「嵌套式結構」(Nested Structure),以及連續性資料元素的特質。

具備「嵌套式結構」(Nested Structure)

List裡的元素也可以是另一個List,因此,也可以有以下的寫法:

={{240,108,132,97,86,49},{"蘋果","葡萄","鳳梨"},{88,66,102,94,70,58}}

={{"台北","高雄","桃園","新北","台南"},水果清單,{"A級","B級","C級","C級","B級","A級"}}

備註:當然,這樣的寫法,先前一定也是已經定義了一的水果清單:

水果清單={"蘋果","葡萄","鳳梨"}

這種具備「嵌套式結構」(Nested Structure),正所謂清單裡還有清單,讓處理資料時更具彈性和效率!

使用{..}描述連續性資料

此外,建立List時若List裡的元素是連續性的資料內容,則可以透過{起始..結束}的語法來表示,例如:{0..9}表示0到9的連續性阿拉伯數字。例如:

{"a".."z"}

表示小寫英文字母a到z的文字清單。因此{"a".."z"}裡面會有26個文字元素,而List也具備了嵌套的概念,也就是在List元素起始與結束的表達上,起始值與結束值允許使用其他函數或運算式。例如:小寫英文字母”a”的ASCII值是97,因此,使用M語言裡的Character.FromNumber函數,也能夠呈現26個小寫英文字母的清單:

= {Character.FromNumber(97)..Character.FromNumber(122)}

那麼,試試下列的寫法,List會輸出什麼呢:

={Character.FromNumber(19968)..Character.FromNumber(40868)}

 

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