Макрос хороший и пользоваться им удобней0 создав надстройку , но выбивает ошибку из-за большого числа элементов в ячейке. Исходный файл для теста был 12 000 строк . в итоге разбить пришлось на несколько файлов . В итоге был кусочек где даже 5 строк вызывало ошибку.
Самый универсальный вариант от Msi2102.
Код
let
Источник = Excel.CurrentWorkbook(){[Name="Таблица14"]}[Content],
#"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(Источник, {{"product_attribute", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "product_attribute"),
#"Вставленный текст перед разделителем" = Table.AddColumn(#"Разделить столбец по разделителю", "Текст перед разделителем", each Text.BeforeDelimiter([product_attribute], ":"), type text),
#"Извлеченный текст после разделителя" = Table.TransformColumns(#"Вставленный текст перед разделителем", {{"product_attribute", each Text.AfterDelimiter(_, ":"), type text}}),
#"Сведенный столбец" = Table.Pivot(#"Извлеченный текст после разделителя", List.Distinct(#"Извлеченный текст после разделителя"[#"Текст перед разделителем"]), "Текст перед разделителем", "product_attribute")
in
#"Сведенный столбец"
Оптимально будет - сначала можно пробовать vba и если не работает, то выполнить запрос через Power Query ( у меня и 1 млн строк отработало)