Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать 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 | |
Шаги:
- Загрузка оба диапазона в Редактор запросов питания ;
- Давайте начнемс
Range1
, во-первых, используйте функцию Объединить столбцы , чтобы объединить оба столбца в один со знаком двоеточия-разделителем :
, затем используйте функцию Разделить столбцы , чтобы разделить этот столбец по знаку двоеточия :
и в дополнительных настройках выберите, чтобы поместить результаты в Rows , затем filter из всех null
, затем создайте дублированный столбец и используйте Group By функция для подсчета количества дублированных строк по каждому номеру. Тогда у вас должно быть что-то вроде следующего:
Сделайте то же самое для
Range2
, за исключением того, что нет необходимости создавать дублированный столбец для нахождения счетчиков, а используйте функцию
Merge Queries , чтобы объединить
Range2
с
Range1
, а затем развернитеобъединенный столбец, чтобы показать
Count
, тогда у вас должно получиться что-то вроде следующего:
Переименуйте столбцы по желанию, а затем Закрыть и загрузить вывод на новый рабочий лист (по умолчанию).
Здесь находятся 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"
Дайте мне знать, если у вас есть какие-либо вопросы. Приветствия:)