Вы можете сделать это, используя Power Query . Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel. Он доступен в Excel 2010 Professional Plus и более поздних версиях . Моя демонстрация использует Excel 2016 .
Шаги:
- Использование функции Из таблицы для добавления исходной таблицы в запрос мощностиредактор, Удалите все несущественные столбцы и оставьте только
Column F
и Column G
. Ниже приведен небольшой пример, который я использую:
Щелкните правой кнопкой мыши заголовок
Column G
, чтобы создать
дубликат столбца столбца G;
Используйте функцию
Разделить столбец на вкладке
Transform
, чтобы разделить столбец G запятыми
,
и убедитесь, что выходные параметры помещены в
Строки :
Добавьте пользовательский столбец на вкладке
Add Column
с этой формулой:
=Text.PositionOf([Col_F],[Col_G])>=0
, тогда у вас должно получиться что-то вроде ниже:
Нажмите кнопку фильтра в правой части заголовка столбца, чтобы Фильтр Custom column
, чтобы отобразить только FALSE
результаты;
Используйте Объединить столбцы на вкладке Transform
, чтобы объединить Column F
и Column G - Copy
с точкой с запятой ;
в качестве разделителя. Тогда у вас должно быть:
Используйте
Группировать по Функция для группировки
Column G
по объединенному столбцу со следующей настройкой. После этого вы увидите, что в столбце
Sum
отображаются ожидаемые ошибки.
Перейдите к строке формул и
замените формулу на эту:
= Table.Group(#"Merged Columns", {"Merged"}, {{"Sum", each Text.Combine([Col_G],","), type text}})
, тогда у вас должно получиться что-то вроде следующего:
Затем вы можете
разделить объединенный столбец на точку с запятой
;
, чтобы получить оригинал
Column F
и
Column G
;
Переименуйте каждый столбец по своему усмотрению, а затем
Закройте и загрузите вывод на новый рабочий лист (по умолчанию). Тогда у вас должно получиться что-то вроде следующего:
Приведенные выше шаги могут быть упрощены, если вам не нужно показывать Column G
в выходной таблице. Вы можете пропустить шаги 2, 6 и 9. Хитрый бит - это шаг 8, где вы не создаете новый шаг, а скорее меняете формулу, использованную на предыдущем шаге. Ключ заключается в том, чтобы заменить исходную функцию List.Sum
на функцию Text.Combine
в формуле, чтобы получить желаемый результат.
Здесь находятся Power Query M-коды позади сцены. :
let
Source = Excel.CurrentWorkbook(){[Name="Table11"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Col_F", type text}, {"Col_G", type text}}),
#"Duplicated Column" = Table.DuplicateColumn(#"Changed Type", "Col_G", "Col_G - Copy"),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Duplicated Column", {{"Col_G", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Col_G"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Col_G", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type1", "Custom", each Text.PositionOf([Col_F],[Col_G])>=0),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = false)),
#"Merged Columns" = Table.CombineColumns(#"Filtered Rows",{"Col_F", "Col_G - Copy"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged"),
#"Grouped Rows" = Table.Group(#"Merged Columns", {"Merged"}, {{"Sum", each Text.Combine([Col_G],","), type text}}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Grouped Rows", "Merged", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Merged.1", "Merged.2"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"Merged.1", type text}, {"Merged.2", type text}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type2",{{"Merged.1", "Col_F"}, {"Merged.2", "Col_G"}, {"Sum", "Col_Missing"}})
in
#"Renamed Columns"
Дайте мне знать, если у вас есть какие-либо вопросы. Приветствия:)