乐于分享
好东西不私藏

EXCEL|Power Query的结构组成之创建List列表

EXCEL|Power Query的结构组成之创建List列表
昨天我们讲了创建Record记录的步骤。大家可以发现这样的规律:
中括号 [] = 记录 (Record) 对应 “一行数据”(键值对:列名 = 值)

[姓名="张三", 年龄=28]  // 一行,两列

增加一行(用 [] 构造记录)

= Table.InsertRows(原表, 0, {[姓名="王五", 年龄=25]})
// 第二个参数是插入位置,第三个参数是“记录的列表”

今天咱们来学创建列List。
1) 先建空白查询,命名为List1, 然后在公式编辑栏中输入公式:={{1,2,3},{"A","B","C"}},获得两条List记录,见如下操作:
2)转换到表。操作如下图所示。
3)转换到表后,结果如下。
这种情况有三种方式获得List列表。
01. 单击【Column1】字段右侧的展开按钮,获得List列表的结果,如下图所示。
02. 使用List. Combine函数直接连接。如下图所示。
公式:=List.Combine({{1,2,3},{"A","B","C"}})
03. 可以使用字符串连接,可以串联独立字符串和List列表,公式和操作如下图所示。
={1,2,3}&{"A","B","C"}
来总结下创建列List的规律:
大括号 {} = 列表 (List) 对应 “一列数据”(有序值集合)

{"张三", "李四", "王五"}  // 一列,三行

增加一列(用 {} 构造列表,或直接写值)

= Table.AddColumn(原表, "新列", each {1,2,3}{[Index]}) // 或直接:each "固定值"

公式解析:

  • Table.AddColumn
    Power Query 专属函数,作用:给现有表格新增一列
  • 参数 1:原表
    你要加工的目标原始数据表。
  • 参数 2:"新列"
    你要新增的这一列,最终显示的列名称。
  • 参数 3:each {1,2,3}{[Index]} 核心重点
    • each
       = 循环遍历表的每一行,给每行单独计算值
    • {1,2,3}
       = 一个一维列表 (List),也就是一个有序数组:第 0 位 = 1、第 1 位 = 2、第 2 位 = 3
    • {[Index]}
       = 用「索引序号」去列表里按位置取值
假如表格只有4行,索引列Index值是0,1,2,3,则结果如下图所示:
两种写法对比:
接下来 ,咱们再来学下,如果创建由逗号分割的List列表 :
01)创建一个空白查询表格,命名为List2, 输入如下内容:
  1. 这个写法的本质:
  • 外层 {} 代表 List(列表)
  • 每一项用英文双引号 " 包裹,是独立的文本字符串
  • 运行后就会生成图里的 3 行单列列表,查询名称命名为了 List2。
02)单击功能中的【转换工具】-【转换】-【到表】选项,在弹出的对话框中设置使用逗号分隔数据,如下图所示:
03)结果如下图所示。
04)我们修改下列名,就是最后结果,如下图所示。
好了,今天就这些。