Table.AlternateRows删除间隔….Alternate…(Power Query 之 M 语言)
数据源:
“姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列7行数据
目标:
留下第1、2、5三行数据
操作过程:
【主页】》【删除行】》【删除间隔行】》输入删除的起始行》输入待删除的行数》输入删除行后面要保留的行数》【确定】
M公式:
= Table.AlternateRows( 表, 起始行, 间隔删除的行数, 间隔保留的行数)
说明:
删除的起始行在公式中由0开始计数,如上图三个数字分别是3、2、1,在公式中则是2、2、1。
当实际行数大于余下保留的行时,这样的删除循环,如= Table.AlternateRows(步骤名,0,1,2),是从第1行起,删除1后,保留两行。如原数据在4行以内则保留2、3两行;7行以内则保留2、3、5、6四行;10行以内则保留2、3、5、6、8、9……以此类推。好吧,这样写有点支持头晕模式了,换个说法,就是从“第一参数”里,从“第二参数”开始,间隔着删除“第三参数”,保留“第四参数”,如此循环,直到最后一行。
最终效果:
数据只剩下1、2、5三行数据
扩展:
列表删除间隔项:=List.Alternate( 列表, 间隔删除的项数, 间隔保留的项数, 起始保留的项数)
=List.Alternate( 列表, 第二参数),相当于=List.Skip( 列表, 删除的项数)
=List.Alternate({1..10}, 5),结果为6、7、8、9、10
=List.Alternate( 列表, 第二参数, 第三参数),第二参数除是表示间隔删除的项数以外,还相当于起始项。
=List.Alternate({1..10}, 2, 3),结果为3、4、5、8、9、10
所有参数完整时,结果是第四参数指定行数全部显示,并且后面的结果在原公式没有第四参数的基础上向下偏移第四参数。
=List.Alternate({1..10}, 2, 3, 1},结果为1、4、5、6、9、10