Страницы: 1
RSS
Парсинг в строки текста из ячеек, Парсинг в строки
 
Уважаемые мастера экселя, выручайте!

Застряла на парсинге, не могу сообразить как расписать записи сразу по двум столбцам. Нужно чтобы записи из полей "статус" и "временные диапазоны" разнеслись по строкам  по каждому заказу. Решить нужно через  Power Query.
Пример что есть и что надо получить прикладываю.

Спасибо!
 
почти красиво сделать помог ИИ, но начинал с самостоятельных попыток )
Код
let
    source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    
    splitColumns = Table.TransformColumns(source, {
        {"Статусы", Splitter.SplitTextByDelimiter(" - ", QuoteStyle.Csv), type {text}},
        {"Временные диапазоны", Splitter.SplitTextByDelimiter(" - ", QuoteStyle.Csv), type {text}}
    }),
    
    addZipped = Table.AddColumn(splitColumns, "Temp", each 
        Table.FromColumns({[Статусы], [Временные диапазоны]}, {"Статусы", "Временные диапазоны"})
    ),
    
    // Удаляем исходные столбцы-списки перед расширением
    removeOriginal = Table.RemoveColumns(addZipped, {"Статусы", "Временные диапазоны"}),
    
    expandTable = Table.ExpandTableColumn(removeOriginal, "Temp", {"Статусы", "Временные диапазоны"})
in
    expandTable
 
Ирина Григорьева, здравствуйте. Еще вариант:
Код
let
    f = (tab)=> [
        a = Table.SelectColumns(tab, nms),
        b = Table.ToList(a, (x)=>List.Transform(x,(y)=> Text.Split(y,"-"))),
        d = Table.FromColumns( b{0}, nms)
    ][d],
    src = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    nms = List.Skip( Table.ColumnNames(src),1),
    g = Table.Group(src, {"Номер заказа"}, {{"Количество", each f(_)}}),
    exp = Table.ExpandTableColumn(g, "Количество", nms, nms)
in
    exp
 
pq
 
VBA
Согласие есть продукт при полном непротивлении сторон
 
д.массив
 
Вариант со старыми формулами для разнообразия.
 
Спасибо огромное!
Очень выручили, возьму на заметку и VBA, и PQ, и через простые формулы.
Страницы: 1
Читают тему
Наверх