Страницы: 1
RSS
Power Query. Трансформация структуры отчета из 1С в плоскую таблицу.
 
Уважаемые форумчане. Прошу помочь разобраться с задачей (во вложении).
Есть таблица, выгружаемая с 1с (в не читабельном виде). В столбце A:A присутствует инициалы менеджера - его действия - дата.
Необходимо транспонировать данные таким образом, чтобы названия колонок (ФИО и действия) преобразовались в столбчатый вид...
В примере показана выгрузка (образец) как выгружаются данные (A:E), а рядом вид, который необходимо получить (I:O).
Пробовал транспонировать столбцы, но получалось лишь присвоить строкам ФИО первого сотрудника :(. Прошу ваше помощи, друзья!
 
Доброе время суток
Странно, в чём проблема? Мышкоклацанием же делается
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Added Custom" = Table.AddColumn(Source, "Операция", each if [Дата поступления] = "Проверка документа" or [Дата поступления] = "Внесение изменений" then [Дата поступления] else null),
    #"Filled Down" = Table.FillDown(#"Added Custom",{"Операция"}),
    #"Filled Up" = Table.FillUp(#"Filled Down",{"Операция"}),
    #"Added Custom1" = Table.AddColumn(#"Filled Up", "ФИО", each if [Дата поступления] <> [Операция] and [Дата принятия] = null then [Дата поступления] else null),
    #"Filled Down1" = Table.FillDown(#"Added Custom1",{"ФИО"}),
    #"Filtered Rows" = Table.SelectRows(#"Filled Down1", each ([Дата принятия] <> null)),
    #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"ФИО", "Операция", "Дата поступления", "Дата принятия", "Дата закрытия", "Документ", "Количество"})
in
    #"Reordered Columns"
 
Причем тут транспонирование вообще? Там элементарные добавления столбцов по условию и фильтрация лишних строк:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    AddedOperation = Table.AddColumn(Source, "Операция", each if [Дата поступления] = "Проверка документа" or [Дата поступления] = "Внесение изменений" then [Дата поступления] else null, type text),
    AddedName = Table.AddColumn(AddedOperation, "ФИО", each if [Операция] = null and [Дата принятия] = null then [Дата поступления] else null, type text),
    FilledDown = Table.FillDown(AddedName,{"Операция", "ФИО"}),
    FilteredNulls = Table.SelectRows(FilledDown, each ([Дата принятия] <> null)),
    OrderdColumns = Table.SelectColumns(FilteredNulls,{"ФИО", "Операция", "Дата поступления", "Дата принятия", "Дата закрытия", "Документ", "Количество"}),
    ChangedType = Table.TransformColumnTypes(OrderdColumns,{{"Дата поступления", type datetime}, {"Дата принятия", type datetime}, {"Дата закрытия", type datetime}, {"Документ", type text}, {"Количество", type number}})
in
    ChangedType

Андрей VG,   :D Запросы-близнецы.
Изменено: PooHkrd - 19.09.2019 10:10:17
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Запросы-близнецы.
Привет, Алексей.
Так одного же форума участники  :D
Изменено: Андрей VG - 19.09.2019 10:20:00
 
Модераторам, предлагаю корректную тему:
Power Query. Трансформация структуры отчета из 1С в плоскую таблицу.
Вот горшок пустой, он предмет простой...
 
Коллеги, а если все же "Операций" будет не 2 вида, а 40, все же не перечислишь.
 
Цитата
bobyjoy написал:
все же не перечислишь.
Почему?
Делается справочник и вместо перечисления условий через оператор or сканируем справочник на совпадения при помощи List.Contains. Вариантов на самом деле море, было бы понимание что в принципе можно делать с данными и желание справочник функций полистать.  ;)
вот это выражение
Код
[Дата поступления] = "Проверка документа" or [Дата поступления] = "Внесение изменений"

меняем на такое
Код
List.Contains( {"Проверка документа", "Внесение изменений"}, [Дата поступления] )

А вместо вот этого списка можно уже подставлять список из справочника.
Изменено: PooHkrd - 19.09.2019 11:23:47
Вот горшок пустой, он предмет простой...
 
Понял, спасибо
 
Цитата
Андрей VG написал:
Странно, в чём проблема? Мышкоклацанием же делается
Оххх..Мышкоклацаним не получилось добиться желаемого результат, а вторая проблема в нехватке знаний языка М...Пользуясь случаем, хочу у Вас спросить, не могли бы предоставить какой источник для изучения данного языка? (Я понимаю, что англоязычной информации много, но может есть русскоязычные источники?)
Огромное спасибо Вам за помощь.
 
NV.Telegin,
https://www.planetaexcel.ru/books/sd-book.php
https://finalytics.pro/inform/m-for-powerquery/
и вот полезная ветка
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=5&TID=96646&TITLE_SEO=96646-powerpivot-powerquery-powerbi
 
Цитата
Stics написал:
https://www.planetaexcel.ru/books/sd-book.php  https://finalytics.pro/inform/m-for-powerquery/ и вот полезная ветка https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=5&TID=96646&T...
Вы не представляете  8-0 , как я Вам благодарен  ;)  Огромное спасибо!!!
Страницы: 1
Наверх