天天看點

Table.Distinct取唯/衆數….Distinct/Mode/判斷…IsDistinct(Power Query 之 M 語言)

資料源:

  “姓名”“基數”“個人比例”“個人繳納”“公司比例”“公司繳納”“總計”,共7列7行資料,其中姓名列第1、2行與第6、7行内容重複

目标:

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

操作過程:

  選取指定列》【首頁】》【删除行】》【删除重複項】

  

Table.Distinct取唯/衆數….Distinct/Mode/判斷…IsDistinct(Power Query 之 M 語言)

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}