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

2020-03-23 16:39:28 浏览数 (3)

删除指定数据提取

1. 删除错误行提取

Table.RemoveRowsWithErrors(table as table, optionalcolumns as nullablelist) as table

第1参数是需要操作的表;第2参数是可选择的列。返回生成的也是表格式。

例:

Table.RemoveRowsWithErrors(源)=

解释:删除表中所有的错误行。

Table.RemoveRowsWithErrors(源,"={"姓名"})=

解释:删除指定列的错误行。

2. 删除指定行提取

Table.RemoveRows(table as table,offset as number,optional count as nullable number)as table

参数1代表需要操作的表;参数2代表偏移的位置,数字从0开始;第3参数代表需要删除的行,默认为1。

例:

Table.RemoveRows(源,1)=

Table.RemoveRows(源,2,0)=

解释:因为第3参数是0,也就是不删除,所以保留原表。

Table.RemoveRows(源,2,1)=

解释:从表中偏移2行后再删除1行,也就是删除的是原表的第3行。

3. 删除匹配行提取

Table.RemoveMatchingRows(tableas table,rows as list,optional equationCriteria as any) as table

删除出现所有指定的记录。第1个参数是需要操作的表;第2参数是行的列表,可以理解为记录的条件列表;第3参数和第2参数的比较,可以理解为列匹配,通常指的是字段名匹配。

例:

Table.RemoveMatchingRows(源, {[成绩=90]},"成绩")=

解释:删除所有成绩为90的记录并生成一个新表。源代表的是步骤名称,表示在当前查询中进行的操作,因为是记录所以有明确的记录值。记录是没有筛选的,所以只有绝对的引用值。

Table.RemoveMatchingRows(源, {[成绩=90,学科="英语"]},{"成绩","学科"})=

解释:删除所有成绩为90并且学科为英语的记录。第3参数列里面的字段名称和第2参数里面的字段名称进行匹配。

Table.RemoveMatchingRows(源, {[成绩=90,学科="英语",姓名="张三"]},{"姓名"})=

解释:原本条件是删除所有成绩为90,学科="英语"并且姓名="张三"的记录,但是第3参数的匹配只有姓名,所以只匹配姓名的条件。也就是只操作删除姓名="张三"的记录的动作。

0 人点赞