这一篇文章先来跟大家介绍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) 向下切入:深化(撷取)容器里的内容>>