【问题】有两个表,我要比较出重复的数据、表1未出现在表2中的数据、表2未出现在表1中的数据,怎么样。
【代码】如下
------------处理表1---------
let
源 = Excel.CurrentWorkbook(){[Name="表2"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"单位", type text}, {"班别", type text}, {"姓名", type text}}),
已添加自定义 = Table.AddColumn(更改的类型, "合并", each Text.Combine(Record.ToList(_),"@"))
in
已添加自定义
-------处理表2--------
let
源 = Excel.CurrentWorkbook(){[Name="表3"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"单位", type text}, {"班别", type text}, {"姓名", type text}}),
已添加自定义 = Table.AddColumn(更改的类型, "合并", each Text.Combine(Record.ToList(_),"@"))
in
已添加自定义
-------重复的数据--------
let
源 = List.Intersect({表1[合并],表2[合并]}),
转换为表 = Table.FromList(源, Splitter.SplitTextByDelimiter("@"), null, null, ExtraValues.Error),
更改的类型 = Table.TransformColumnTypes(转换为表,{{"Column1", type text}, {"Column2", Int64.Type}, {"Column3", type text}}),
重命名的列 = Table.RenameColumns(更改的类型,{{"Column1", "单位"}, {"Column2", "班别"}, {"Column3", "姓名"}})
in
重命名的列
-------表1未出现在表2中的数据--------
let
源 = List.Difference(表1[合并],表2[合并]),
转换为表 = Table.FromList(源, Splitter.SplitTextByDelimiter("@"), null, null, ExtraValues.Error),
更改的类型 = Table.TransformColumnTypes(转换为表,{{"Column1", type text}, {"Column2", Int64.Type}, {"Column3", type text}}),
重命名的列 = Table.RenameColumns(更改的类型,{{"Column1", "单位"}, {"Column2", "班别"}, {"Column3", "姓名"}})
in
重命名的列
------表2未出现在表1中的数据---------
let
源 = List.Difference(表2[合并],表1[合并]),
转换为表 = Table.FromList(源, Splitter.SplitTextByDelimiter("@"), null, null, ExtraValues.Error),
更改的类型 = Table.TransformColumnTypes(转换为表,{{"Column1", type text}, {"Column2", Int64.Type}, {"Column3", type text}}),
重命名的列 = Table.RenameColumns(更改的类型,{{"Column1", "单位"}, {"Column2", "班别"}, {"Column3", "姓名"}})
in
重命名的列
【结果】