Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Иерархия в Power Query, Построение иерархии
 
surkenny, ваш вариант определенно интереснее и техничнее.)
Иерархия в Power Query, Построение иерархии
 
Задача более не актуальна. Спасибо.  
Иерархия в Power Query, Построение иерархии
 
Данную задачу я решил довольно таки тривиальным способом. После построения неправильной архитектуры я подцепил к ним Уровни из сделанной мной ранее НСИ. После этого я добавил пользовательские столбцы и выводил id по значениям.
Код выглядит так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица3"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"id (Код клиента)", type text}, {"client_cod", type any}, {"head_id", type text}, {"manager_id", type text}, {"INN", type any}, {"KPP", type any}, {"buyer_group_id (Код родителя папки)", type text}, {"Ур. Папка", type text}, {"Buyer_group.buyer_group_id", type text}, {"Ур. Папка2", type text}, {"Buyer_group.buyer_group_id.2", type text}, {"Ур. Папка3", type text}, {"Buyer_group.buyer_group_id.3", type text}, {"Ур. Папка4", type text}, {"Buyer_group.buyer_group_id.4", type text}, {"Ур. Папка5", type text}, {"Buyer_group.buyer_group_id.5", type text}, {"Ур. Папка6", type text}, {"Buyer_group.buyer_group_id.6", type text}, {"Ур. Папка7", type text}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "Ур. 1", each if [Ур. Папка7] = "Ур. 1" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 1" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 1" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 1" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 1" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 1" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 1" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект2" = Table.AddColumn(#"Добавлен пользовательский объект", "Ур. 2", each if [Ур. Папка7] = "Ур. 2" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 2" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 2" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 2" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 2" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 2" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 2" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект3" = Table.AddColumn(#"Добавлен пользовательский объект2", "Ур. 3", each if [Ур. Папка7] = "Ур. 3" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 3" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 3" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 3" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 3" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 3" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 3" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект4" = Table.AddColumn(#"Добавлен пользовательский объект3", "Ур. 4", each if [Ур. Папка7] = "Ур. 4" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 4" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 4" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 4" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 4" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 4" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 4" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект5" = Table.AddColumn(#"Добавлен пользовательский объект4", "Ур. 5", each if [Ур. Папка7] = "Ур. 5" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 5" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 5" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 5" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 5" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 5" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 5" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект6" = Table.AddColumn(#"Добавлен пользовательский объект5", "Ур. 6", each if [Ур. Папка7] = "Ур. 6" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 6" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 6" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 6" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 6" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 6" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 6" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Добавлен пользовательский объект7" = Table.AddColumn(#"Добавлен пользовательский объект6", "Ур. 7", each if [Ур. Папка7] = "Ур. 7" then [Buyer_group.buyer_group_id.6] else if [Ур. Папка6] = "Ур. 7" then [Buyer_group.buyer_group_id.5] else if [Ур. Папка5] = "Ур. 7" then [Buyer_group.buyer_group_id.4] else if [Ур. Папка4] = "Ур. 7" then [Buyer_group.buyer_group_id.3] else if [Ур. Папка3] = "Ур. 7" then [Buyer_group.buyer_group_id.2] else if [Ур. Папка2] = "Ур. 7" then [Buyer_group.buyer_group_id] else if [Ур. Папка] = "Ур. 7" then [#"buyer_group_id (Код родителя папки)"] else null),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Добавлен пользовательский объект7",{"buyer_group_id (Код родителя папки)", "Ур. Папка", "Buyer_group.buyer_group_id", "Ур. Папка2", "Buyer_group.buyer_group_id.2", "Ур. Папка3", "Buyer_group.buyer_group_id.3", "Ур. Папка4", "Buyer_group.buyer_group_id.4", "Ур. Папка5", "Buyer_group.buyer_group_id.5", "Ур. Папка6", "Buyer_group.buyer_group_id.6", "Ур. Папка7"})
in
    #"Удаленные столбцы"
Из минусов этого метода, мне из 2х справочников пришлось сделать "прокладку" со справочником уровней иерархии.
Файл прикладываю, вдруг кому поможет когда-нибудь.  
Иерархия в Power Query, Построение иерархии
 
Добрый день!
Прошу помочь разобраться в данной теме.
Выгружаю данные папок 1С и клиентов из базы данных.
Что имеем:
1. Таблица с папками клиентов, такого вида:
Код
ID папки | Имя папки | Код родителя папки
Из этого я построил иерархию папок:
Код
Главная папка - Папки 2ур. - Папки 3ур. - Папки 4ур. - Папки 5ур. и т.д.
2. Таблица клиентов, такого вида:
Код
ID клиента | Имя клиента | id папки в которой сидит клиент. (Папка неизвестного уровня).

Итог.
По той же логике я могу собрать иерархию от обратного, то есть
Код
Клиент - Папка в которой сидит клиент - Папка уровнем выше - Папка уровнем выше и так до Главной папки. 
Получаем совсем не то что нужно да еще и в столбцах могут содержаться папки разного уровня.
А хочется получить такое:
Код
Клиент - Главная папка - Папки 2ур. - Папки 3ур. - Папки 4ур. - Папки 5ур. и т.д.
Пример во вложении. Листы:
1. Папки - Справочник всех папок где указаны: Код папки, код родителя папки.
2. Клиенты - Справочник клиентов где указаны: Код клиента, код папки.
3. Иерархия по папкам ручн. - То как я могу строить иерархию папок, от 1ур до последнего.
4. НСИ - ручной справочник по папкам и их уровням.
5. Иерархия по клиентам ручн.- То как я могу строить иерархию папок по клиентам. Он не правильный, т.к. в 1 столбце может быть несколько уровней.
6. Желаемый итог - То как хотелось бы научиться собирать иерархию по клиентам.
Иерархия в Power Query, Построение иерархии
 
surkenny, понял, спасибо!
Создам тему в разделе Работа.  
Иерархия в Power Query, Построение иерархии
 
Цитата
написал:
Без примера очень сложно что-то понять. Только предположения.
99%, что можно сделать
Только не понятно, что у Вас есть и что нужно.
Сделайте пример в excel с данными (несколько таблиц + справочник). Потом перенесете логику на реально решение.
Но, вообще, очень похоже на ТЗ для раздела Работа
Сделал файлик в Экселе.
Листы:
1. Папки - Справочник всех папок где указаны: Код папки, код родителя папки.
2. Клиенты - Справочник клиентов где указаны: Код клиента, код папки.
3. Иерархия по папкам ручн. - То как я могу строить иерархию папок, от 1ур до последнего.
4. НСИ - ручной справочник по папкам и их уровням.
5. Иерархия по клиентам ручн.- То как я могу строить иерархию папок по клиентам. Он не правильный, т.к. в 1 столбце может быть несколько уровней.
6. Желаемый итог - То как хотелось бы научиться собирать иерархию по клиентам.

Если кто-то знает как это правильно сделать и сможет мне объяснить, жду ваших предложений в ЛС. (не бесплатно).
Иерархия в Power Query, Построение иерархии
 
Цитата
написал:
Тогда без вариантов - нужен какой-то справочник, по которому можно понять какой ID к какому уровню относится. Или какой-то признак, по которому можно понять уровень. По скринам я ничего подобного не нашел.
Я смог в ручную сделать иерархию для каждой папки с указанием уровня. Это как-то может помочь? Или без привязки к конкретному клиенту собрать все это воедино невозможно?
 
Иерархия в Power Query, Построение иерархии
 
Цитата
написал:
Цитата
написал:
какие варианты решения вообще есть по данному вопросу
как бы...очень размыто все. Когда подключаетесь к папке - у Вас есть столбец Path - там полный путь к папке с файлом. Собственно, удалив все до основной корневой папки уровень можно будет определить по количеству слешей - /, который разделяют папки друг от друга.
Наверное я не совсем верно все описал.
Данные я беру из БД где просто указаны id папок из 1С. (Скрин во вложении).  
Иерархия в Power Query, Построение иерархии
 
Добрый день!
Прошу помочь разобраться в данной теме.
Что имеем:
1. Таблица с папками клиентов, такого вида:
Код
ID папки | Имя папки | Код родителя папки
Из этого я построил иерархию папок:
Код
Главная папка - Папки 2ур. - Папки 3ур. - Папки 4ур. - Папки 5ур. и т.д.
2. Таблица клиентов, такого вида:
Код
ID клиента | Имя клиента | id папки в которой сидит клиент. (Папка неизвестного уровня).

Итог.
По той же логике я могу собрать иерархию от обратного, то есть
Код
Клиент - Папка в которой сидит клиент - Папка уровнем выше - Папка уровнем выше и так до Главной папки. 
Получаем совсем не то что нужно да еще и в столбцах могут содержаться папки разного уровня.
А хочется получить такое:
Код
Клиент - Главная папка - Папки 2ур. - Папки 3ур. - Папки 4ур. - Папки 5ур. и т.д.
Подскажите, какие варианты решения вообще есть по данному вопросу. Буду очень благодарен за любой комментарий.  
Power Query | Запрос выгрузки данных по API по определенным значениям, Массивы/циклы в Power Query, прошу помочь..
 
PooHkrd, извините за беспокойство, может вы сможете адаптировать ваш вариант под мою ссылку? (Не бесплатно).

Я просто новичок, не понимаю как реализовать... Вроде все просто, но ничего не выходит..
Если вдруг вас заинтересовало предложение, напишите мне пожалуйста в ЛС. Спасибо.
Изменено: Igor Minakov - 10.01.2022 14:02:10
Power Query | Запрос выгрузки данных по API по определенным значениям, Массивы/циклы в Power Query, прошу помочь..
 
Добрый день!
Прошу помочь разобраться с моим запросом.
В данным момент имею:
1. Таблицу под названием ID: (Выгрузка идет по Коду из столбца КодРАЭК)
КодНаименованиеКодРАЭК
516671. Наконечник штыревой втулочный   изолир.   1,0мм.кв. х  8мм    Е1008 (уп.=100шт.) ИЭК479002
516682. Наконечник   штыревой втулочный изолир.   1,0мм.кв.   х  8мм    Е1008 (уп.=100шт.) ИЭК479003
516693. Наконечник штыревой втулочный   изолир.   1,0мм.кв. х  8мм    Е1008 (уп.=100шт.) ИЭК479004
2. Мой запрос:
Код
let
    i = 0,
    Источник = Web.Contents("http://catalog.raec.su/api/product/"&Text.From(Excel.CurrentWorkbook(){[Name="ID"]}[Content]{i}[КодРАЭК]),
    [Headers=[#"API-KEY"="Ключ"],
    Query=[#"filter[limit]"="500"]
]
    
),
    #"Импортированные данные JSON" = Json.Document(Источник),
    #"Преобразовано в таблицу" = Record.ToTable(#"Импортированные данные JSON")
in
    #"Преобразовано в таблицу"
3. Итог, благодаря данному запросу выгружаются все данные по товару из 1 строки с кодом "479002".
Мне же требуются данные всех товаров из столбца "КодРАЭК".
Буду очень благодарен тем кто поможет разобраться, т.к. я не догоняю.. Заранее всем спасибо!  
Изменено: Igor Minakov - 10.01.2022 11:17:43
Power Query | Запрос выгрузки данных по API по определенным значениям, Массивы/циклы в Power Query, прошу помочь..
 
Добрый день!
Прошу помочь разобраться как написать данный запрос.
Что имеем:
1. Таблица с названием ID такого вида: (Столбец КодРАЭК - то какие ID требуются выгружать)
КодНаименованиеКодРАЭК
51667Наконечник штыревой втулочный   изолир.   1,0мм.кв. х  8мм    Е1008 (уп.=100шт.) ИЭК479002
51668Наконечник   штыревой втулочный изолир.   1,0мм.кв.   х  8мм    Е1008 (уп.=100шт.) ИЭК479003
51669Наконечник штыревой втулочный   изолир.   1,0мм.кв. х  8мм    Е1008 (уп.=100шт.) ИЭК479004
2. Написанный мной запрос:
Код
let
    Источник = Web.Contents("http://catalog.raec.su/api/product/"&Text.From(Excel.CurrentWorkbook(){[Name="ID"]}[Content]{0}[КодРАЭК]),
    [Headers=[#"API-KEY"="Ключ"],
    Query=[#"filter[limit]"="500"]
]
    
),
    #"Импортированные данные JSON" = Json.Document(Источник),
    #"Преобразовано в таблицу" = Record.ToTable(#"Импортированные данные JSON")
in
    #"Преобразовано в таблицу"
3. На данный момент, выгружается лишь 1 строка с кодом "479002", а надо чтобы выгружалось все вместе из столбца КодРАЭК.
Прошу помочь написать или подсказать где копать, очень похоже, что решение очень простое и где-то под рукой, но не догоняю..
Заранее спасибо.  
Страницы: 1
Наверх