样例表格:
之前讲了从表头获取,那对应的就有从表尾获取。
(一)从表尾开始提取
1. 获取表的最后一条记录
Table.Last(table as table, optionaldefault as any)as any
第1参数是需要操作的表;第2参数是在空表的情况下的赋值;返回的结果如果是非空表则是最后一条记录,格式是Record格式,如果是空表则是赋值的格式。
例:
Table.Last(数据)=[姓名="王五",成绩=80,学科="英语"]
Table.Last(Table.FromRecords({}),{"空表"})={"空表"}
解释:空表代表没有记录的表,但是可以有标题字段名。Table.FromRecords({})生成的是一个空表,例如Table.FromList({}),Table.FromColumns({}),Table.FromRows({})也是一样的,生成的是不具备标题字段的空表;Table.FromValue({})生成的就是一个标题字段为Value的空表;因为是空表所以返回指定值。
2. 获取指定条件表的最后几条记录
Table.LastN(table as table, countOrCondition as any) as table
第1参数为操作的表,第2参数为数字或者条件,返回的是一个表的格式。如第2参数是条件,则从尾开始匹配,返回满足的行,直到不满足为止。
例:
Table.LastN(数据,1) =
<> Table.Last(数据)
解释:因为Table.LastN返回的是table格式,而Table.Last返回的是record格式,所以不相等。
Table.LastN(数据,each _[成绩]<90)=
解释:因为成绩是降序排列,所以返回的结果是直到不满足条件结束。
Table.LastN(数据,each_[成绩]>90)= #table({},{})
解释:因为最后一条记录是80,不满足第2参数的条件,所以没有满足条件的数据,返回的结果就是一个空表。
Table.LastN(数据, each Text.Contains([姓名],"五"))=
解释:查找姓名包含"五"的记录,并返回形成表格。因为第一条记录是的姓名是王五,满足条件,第二条记录是李四不满足条件结束,所以只返回最后一条记录并形成表格。