从单列电源查询中删除重复项

时间:2018-04-15 19:57:31

标签: excel powerquery

从这张原始表中

enter image description here

我做了第二张桌子(使用电源查询)。

enter image description here

第二个表用于数据验证,我需要它依赖第一个表,以便任何更改都会贯穿。我遇到的问题是我的第二个表格不是我想要的,我想从每个列中删除任何重复项。当我尝试删除电源查询中的重复项时,它会删除整行(这是有道理的,我同意),有没有办法从单列中删除重复项?

这是我用来从table1到table2的M代码

let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
   #"Removed Columns" = Table.RemoveColumns(Source,{"Grade", "fb", "fv", "fc", "fcp", "ft", "E", "E05"}),
   #"Grouped Rows" = Table.FromColumns(Table.Group(#"Removed Columns", {"Catégorie"}, {{"Count", each List.InsertRange([Essence],0,List.Distinct([Catégorie]))}})[Count]),
   #"Promoted Headers" = Table.PromoteHeaders(#"Grouped Rows", [PromoteAllScalars=true])
in 
   #"Promoted Headers"

2 个答案:

答案 0 :(得分:1)

如果您的Source表格中包含ABC列,并希望返回删除了重复项的每个列的表格,那么您可以编写M代码是这样的:

= Table.FromColumns({   
      List.Distinct(Source[A]),
      List.Distinct(Source[B]),
      List.Distinct(Source[C])},
      {"A","B","C"})

更一般地说(不使用显式列名称),您可以通过以下几个步骤完成:

ToColumns = Table.FromList(Table.ToColumns(Source), Splitter.SplitByNothing(), null, null, ExtraValues.Error),
RemoveDuplicates = Table.TransformColumns(ToColumns, {{"Column1", each List.Distinct(_)}}),
FromColumns = Table.FromColumns(RemoveDuplicates[Column1], Table.ColumnNames(Source))

答案 1 :(得分:-1)

如果您使用的是新版本的Excel,请从顶部菜单转到数据菜单,然后按>突出显示所需的列,然后按删除重复项。 它只删除所选列中的值

第一

enter image description here

然后:

enter image description here