Table.NestedJoin合並…Join(Power Query 之 M 語言)


數據源:

  “銷量表”和“部門表”兩個查找表,每個表中都有“姓名”列

目標:

  根據“姓名列”將“部門表”中對應的部門合並到“銷量表”中。

操作過程:

  選取“銷量表”》【主頁】》【合並查詢】/【將查詢合並為新查詢】》選取“部門表”》選取匹配列》【確定】

   

   展開Table.Expand…

M公式:

  = Table.NestedJoin( 表1, {"表1匹配列1",...,"表1匹配列n"}, 表2, {"表2匹配列1",...,"表2匹配表n"}, "新列名", 匹配函數)

匹配函數:

  JoinKind.LeftOuter / 1 / 缺省:左外部

  JoinKind.RightOuter / 2:右外部

  JoinKind.FullOuter /3:完全外部

  JoinKind.Inner / 0:內部

  JoinKind.LeftAnti / 4:左反

  JoinKind.RightAnti / 5:右反

  JoinSide.Left:相當於內部的效果

  JoinSide.Right:相當於左外部的效果

擴展:

  左外部合並查詢

    = Table.AddJoinColumn( 表1, {"表1匹配列1",...,"表1匹配列n"}, 表2, {"表2匹配列1",...,"表2匹配表n"}, "新列名")

   模糊匹配的合並查詢

    = Table.FuzzyNestedJoin( 表1, {"表1匹配列1",...,"表1匹配列n"}, 表2, {"表2匹配列1",...,"表2匹配表n"}, "新列名", 匹配函數, 匹配選項)

    匹配選項:[IgnoreCase=true / false, IgnoreSpace=true / false, NumberOfMatches=數字, Threshold=0到1之間的數字, TransformationTable=表名]

      IgnoreCase:區分大小寫

      IgnoreSpace:忽略空格

      NumberOfMatches:指定可為每個輸入行返回的最大匹配行數

      Threshold:指定兩個值將按其進行匹配的相似性分數。

      TransformationTable:允許根據自定義值映射來匹配記錄的表

   一步到位的合並查詢

    = Table.Join( 表1, {"表1匹配列1",...,"表1匹配列n"}, 表2, {"表2匹配列1",...,"表2匹配表n"}, 匹配函數)

      各表匹配列名不重復時才可加上匹配函數

  一步到位的模糊匹配合並查詢

    = Table.FuzzyJoin( 表1, {"表1匹配列1",...,"表1匹配列n"}, 表2, {"表2匹配列1",...,"表2匹配表n"}, 匹配函數, 匹配選項) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM