Страницы: 1
RSS
Транспорирование таблицы построчно с помощью PQ
 
Доброго дня! Необходимо транспорировать табель учета рабочего времени из формата

ФИО01.фев02.фев03.фев04.фев05.фев
Азамат1212 1212
Ашот1210 88
Джамшут78У
в формат

ДатаФИОЧасы
01.февАзамат12
02.февАзамат12
03.февАзамат
04.февАзамат12
05.февАзамат12
01.февАшот12
02.февАшот10
03.февАшот
04.февАшот8
05.февАшот8
01.февДжамшут7
02.февДжамшут8
03.февДжамшутУ
04.февДжамшут
05.февДжамшут
Есть внутренняя уверенность что в Power Qwery есть красивое решение, но обычное транспорирование создает отдельный столбец для каждого ФИО.
Во вложении пример для теста. Большое спасибо.
 
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица24"]}[Content],
    rep = Table.ReplaceValue(from,null,"",Replacer.ReplaceValue,List.Skip(Table.ColumnNames(from),1)),
    unpiv = Table.UnpivotOtherColumns(rep, {"ФИО"}, "Дата", "Часы"),
    to = Table.ReorderColumns(unpiv,{"Дата", "ФИО", "Часы"})
in
    to
Соблюдение правил форума не освобождает от модераторского произвола
 
У кого нет PQ, макрос
Код
Sub iConvert()
Dim i As Long
Dim iLastRow As Long
Dim iLR As Long
 iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
   Range("J4:L20").ClearContents
  For i = 4 To iLastRow
     iLR = Cells(Rows.Count, 10).End(xlUp).Row + 1
    Range("C3:G3").Copy
    Cells(iLR, 10).PasteSpecial xlPasteValues, Transpose:=True
    Cells(iLR, 11).Resize(5) = Range("B" & i)
    Range("C" & i & ":G" & i).Copy
    Cells(iLR, 12).PasteSpecial xlPasteValues, Transpose:=True
  Next
End Sub
 
Спасибо Вам большое! UnpivotOtherColumns я знал, что должно быть что-то подобное) Макрос тоже чудесен)
Страницы: 1
Наверх