Здравствуйте, уважаемые знатоки Power Query и я зыка M. Возникла задача, с которой пока не знаю как справиться, прошу вашей помощи. Имею столбец с текстовой строкой в которой есть разделители (допустим это символ "|"). Необходимо разделить данный текст на строки по каждому Второму разделителю. Например была строка: TEG1|Data 1|TEG2|Data 2|TEG3|Data 3 Хочу получить: TEG1|Data 1 TEG2|Data 2 TEG3|Data 3. Сначала надеялся, что есть готовая функция в разделе Splitter Functions, но её нет. Затем пришла в голову мысль превратить текст в список, а из него сделать список, который бы содержал положение всех моих разделителей ("|"). Затем убрать каждый чётный элемент, и разделить исходный текст по позиции. Но беда в том, что я не знаю как создать список, который содержит позиции Всех моих разделителей. Функции типа List.PositionOf не подходят, так как возвращают положение первого вхождения. В приложенном файле есть исходная таблица, и желаемый результат
Если строка небольшой длины (из 3-10) частей как у вас в примере, можно формулой подготовить ее для последующего разделения, заменив каждый 2й символ на другой: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(Таблица1[Текст];"|";"&";2);"|";"&";3);"|";"&";4);"|";"&";5)
Андрей Лящук, У вас очень компактный вариант получился. К сожалению в версии Excel 2016 в PQ нет функции List.Split, но ваш вариант работает в Power BI
Увы, это личный опыт! Работаю на крупном предприятии, и не могу просто попросить обновить Excel. Какая была версия установлена изначально, такой и пользуемся.
Андрей Лящук, у меня другая проблемка. в окне при разворачивании нет данных(пустые строки), но при выгрузке в Excel данные есть как быть, если надо в PQ добавить еще шаги обработки?
let
Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
Split = Table.TransformColumns(Source,{{"Текст", each List.Transform(List.Split(Text.Split(_,"|"),2),each Text.Combine(_,"|"))}}),
Custom1 = Table.RemoveLastN(Table.Transpose(Table.FromRows({List.Combine(Split[Текст])})))
in
Custom1
Machestro, У меня такая же проблема была, почитайте вот тут, тут, и тут. если прям совсем заблокано в винде всё от пользователя (что врятли). То подойти с местным айтишникам, с нужными продуктами из магазина и попросить чтобы они запустили нужные файлики от имени администратора.