Table.Distinct取唯/众数….Distinct/Mode/判断…IsDistinct(Power Query 之 M 语言)

数据源:

  “姓名”“基数”“个人比例”“个人缴纳”“公司比例”“公司缴纳”“总计”,共7列7行数据,其中姓名列第1、2行与第6、7行内容重复

目标:

  删除姓名列中内容重复的行

操作过程:

  选取指定列》【主页】》【删除行】》【删除重复项】

  

M公式:

  = Table.Distinct( 表, {{ "列名1", 区分大小写},...,{ "列名n", 区分大小写}})

说明:

  删除重复项的规则是保留第一次出现的。

  对整表所有列删除重复项:=Table.Distinct( 表)

  对指定列删除重复项:=Table.Distinct( 表,{ "列名1",...,"列名n"}) 

  对列中字母大小写进行区分:=Table.Distinct( 表,{ "列名", Comparer.OrdinalIgnoreCase})

  只返回第一行数据:=Table.Distinct( 表, {})

最终效果:

  姓名列中的重复项被删除,只保留1-5行 

扩展:

  列表删除重复项:=List.Distinct( 列表, 条件)

    示例1:=List.Distinct({1,2,2,3,3,4})

      结果:{1,2,3,4}

    示例2:=List.Distinct({5,6,4,4,5,5}, each _ >4)

      结果:{5,4}

      说明:列表中大于4的结果为{true,true,false,false,true,true},去除重复项后剩下{true,false},结果对应的位置就是{5,4}

  判断表或表中指定列中是否是唯一值:= Tabel.IsDistinct( 表, { "列1", "列2",…, "列n"})

      结果为逻辑值,其中一列里是唯一值的结果为True,否则为False。

  判断列表中是否是唯一值:= List.IsDistinct( 列表, 条件)

    示例1:= List.IsDistinct({1..9}, each _>2)

      1-9的9个数中,判断是否大于2,结果为多个False和多个True,再判断其是否有重复,最终结果为False

    示例2:= List.IsDistinct({2,3}, each _>2)

      2和3判断是否大于2,结果为一个True和一个False,再判断其是否有重复,最终结果为True

  返回一列中的众数值:= List.Mode( 列表, 条件)

    有多个众数时,各众数中最后一个

      {1,1,2,2,4,3,3,4}中分别有四个众数,1、2、4、3,最后一个众数是3,List.Mode的结果就是3

  返回一列中的所有众数的列表:= List.Modes( 列表, 条件)

    示例1:=List.Modes({1,1,2,2,4,3,4,3})

      结果:{1,2,4,3}

    示例2:=List.Modes({1,1,2,2,4,3,4,3}, each _ >2)

      结果:{1,4}

      说明:列表中大于2的结果为{false,fasle,false,false,true,true,true,true},众数结果为{false,true},结果对应的位置就是{1,4}

posted @ 2020-09-05 19:33  熬肥妖  阅读(1967)  评论(0编辑  收藏  举报