Как определить дубликаты между двумя разными листами одного и того же файла в Excel? - PullRequest
0 голосов
/ 27 октября 2019

У меня есть два столбца данных на листе 1 и два столбца данных на листе 2. Теперь я хочу найти дубликаты между этими двумя столбцами разных листов с использованием любой формулы. enter image description here

1 Ответ

0 голосов
/ 28 октября 2019

Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel. Он доступен в Excel 2010 Professional Plus и более поздних версиях . Моя демонстрация использует Excel 2016 .

Я использовал следующие данные для каждого диапазона, которые соответствуют вашему примеру, за исключением того, что я добавил 1991082802 в ячейку B9 из Range 1.

| Range 1    |            |   | Range 2    |            |
|------------|------------|---|------------|------------|
| Column1    | Column2    |   | Column1    | Column2    |
| 1991082802 |            |   | 1991082802 | 1785867195 |
| 1758058397 | 1785850195 |   | 1758058397 | 1785850195 |
| 1629325544 | 1746402471 |   | 1629325545 | 1746402471 |
| 1884389479 | 1768735009 |   | 1884345479 |            |
| 1631642814 |            |   | 1631642814 |            |
| 1867744901 | 1719428447 |   | 1867744910 | 1719428447 |
| 1684430392 | 1991082802 |   | 1684431092 |            |

Шаги:

  1. Загрузка оба диапазона в Редактор запросов питания ;
  2. Давайте начнемс Range1, во-первых, используйте функцию Объединить столбцы , чтобы объединить оба столбца в один со знаком двоеточия-разделителем :, затем используйте функцию Разделить столбцы , чтобы разделить этот столбец по знаку двоеточия : и в дополнительных настройках выберите, чтобы поместить результаты в Rows , затем filter из всех null, затем создайте дублированный столбец и используйте Group By функция для подсчета количества дублированных строк по каждому номеру. Тогда у вас должно быть что-то вроде следующего:

Range1

Сделайте то же самое для Range2, за исключением того, что нет необходимости создавать дублированный столбец для нахождения счетчиков, а используйте функцию Merge Queries , чтобы объединить Range2 с Range1, а затем развернитеобъединенный столбец, чтобы показать Count, тогда у вас должно получиться что-то вроде следующего:

Range2

Переименуйте столбцы по желанию, а затем Закрыть и загрузить вывод на новый рабочий лист (по умолчанию).

Здесь находятся Power Query M Codes позади сцены. Все шаги используют графический интерфейс без расширенного кодирования, поэтому должны быть довольно простыми и понятными.

Range1 коды:

let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", Int64.Type}}),
    #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Changed Type", {{"Column1", type text}, {"Column2", type text}}, "en-AU"),{"Column1", "Column2"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"Merged"),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Merged Columns", {{"Merged", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Merged"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Merged", Int64.Type}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type1", each ([Merged] <> null)),
    #"Duplicated Column" = Table.DuplicateColumn(#"Filtered Rows", "Merged", "Merged - Copy"),
    #"Grouped Rows" = Table.Group(#"Duplicated Column", {"Merged - Copy"}, {{"Count", each Table.RowCount(_), type number}})
in
    #"Grouped Rows"

Range2 коды:

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", Int64.Type}}),
    #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Changed Type", {{"Column1", type text}, {"Column2", type text}}, "en-AU"),{"Column1", "Column2"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"Merged"),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Merged Columns", {{"Merged", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Merged"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Merged", Int64.Type}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type1", each ([Merged] <> null)),
    #"Merged Queries" = Table.NestedJoin(#"Filtered Rows", {"Merged"}, Range1, {"Merged - Copy"}, "Range1", JoinKind.LeftOuter),
    #"Expanded Range1" = Table.ExpandTableColumn(#"Merged Queries", "Range1", {"Count"}, {"Count"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded Range1",{{"Merged", "Range2"}, {"Count", "No. of Duplications from Range1"}})
in
    #"Renamed Columns"

Дайте мне знать, если у вас есть какие-либо вопросы. Приветствия:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...