如何在Power Query中获取数据——表格篇(2)

2020-03-23 16:38:30 浏览数 (2)

样例表格:

(一)从表头开始提取

1. 获取表的第一条记录

Table.First(table as table, optionaldefault as any)as any

第1参数是需要操作的表;第2参数是在空表的情况下的赋值;返回的结果如果是非空表则是第一条记录,格式是Record格式,如果是空表则是赋值的格式。

例:

Table.First(数据)=[姓名="张三",成绩=100,学科="数学"]

解释:返回的是表的第一行,因为只有1行,所以是记录的格式,而不是表格式。

Table.First(Table.FromRecords({}),{"空表"})={"空表"}

解释:空表代表没有记录的表,但是可以有标题字段名。Table.FromRecords({})生成的是一个空表,例如Table.FromList({}),Table.FromColumns({}),Table.FromRows({})也是一样的,生成的是不具备标题字段的空表;Table.FromValue({})生成的就是一个标题字段为Value的空表;因为是空表所以返回指定值。

2. 获取指定条件表的前几条记录

Table.FirstN(table as table, countOrCondition as any) as table

第1参数为操作的表,第2参数为数字或者条件,返回的是一个表的格式。如第2参数是条件,则从头开始匹配,返回满足的行,直到不满足为止。

例:

Table.FirstN(数据,1) =

<> Table.First(数据)

解释:因为Table.FirstN返回的是table格式,而Table.First返回的是record格式,所以不相等。

Table.FirstN(数据,each _[成绩]>80)=

解释:因为成绩是降序排列,所以返回的结果是直到不满足条件结束。

Table.FirstN(数据,each_[成绩]<100)= #table({},{})

解释:因为第一条记录是100,不满足第2参数的条件,所以没有满足条件的数据,返回的结果就是一个空表。

Table.FirstN(数据, each Text.Contains([姓名],"张"))=

解释:查找姓名包含"张"的记录,并返回形成表格。因为第一条记录是的姓名是张三,满足条件,第二条记录是李四不满足条件结束,所以只返回第一条记录并形成表格。

0 人点赞