@@jenyura вот тут хорошая ветка на эту тему, там обсуждается несколько вариантов www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=102852&TITLE_SEO=102852-vremya-obnovleniya-zaprosov-power-query&tags=UDF
Почти "интерфейсное" решение последнего шага запроса qMinSupplierFilter после строки "Строки с примененным фильтром" еще раз сгруппировать( =Table.Group(#"Строки с примененным фильтром", {"Товар", "Мин.цена"}, {{"Tab", each _, type table}}) ), затем добавить столбец со списком поставщиков(= Table.AddColumn(#"Сгруппированные строки1", "Поставщики", each [Tab][Поставщик])) и развернуть с разделителем (= Table.TransformColumns(#"Добавлен пользовательский объект", {"Поставщики", each Text.Combine(List.Transform(_, Text.From), ","), type text}) .
Мне с переменными сложно, поэтому я делал через вложенные блоки let. Принцип такой: я вывел N строк таблицы с минимальным значением цены, а N привязал к числу повторов в таблице самого минимального значения. После добавления столбца Rows, где в каждой ячейке сгруппированная таблица, добавил столбец: #"Добавлен пользовательский объект" = Table.AddColumn( #"Сгруппированные строки", "Пользовательский", each let Таблица = [Rows] in Table.MinN(Таблица, "Цена", List.Count(List.Select(Таблица[Цена], each _ = List.Min(Таблица[Цена]) ) ) )) То есть я внутри шага с добавлением столбца задал как бы ещё один шаг "Таблица" и присвоил этому шагу значения в столбце "Rows", то есть те самые таблицы в ячейках. И далее уже ссылался на шаг "Таблица", подразумевая под ним эти самые таблицы в ячейках Я пробовал напрямую, без вложенного блока let, но PQ выдавал ошибку
Преподаватель от Бога Excel
Подтверждаю, Сергей великолепный преподаватель
Сергей, подскажите, как замерять время через pq
@@jenyura вот тут хорошая ветка на эту тему, там обсуждается несколько вариантов
www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=102852&TITLE_SEO=102852-vremya-obnovleniya-zaprosov-power-query&tags=UDF
Очень помогли! Спасибо!
Супер! Большое спасибо!
Сам того не зная пользовался способом Максима Зеленского пару лет))))
Почти "интерфейсное" решение последнего шага запроса qMinSupplierFilter после строки "Строки с примененным фильтром" еще раз сгруппировать( =Table.Group(#"Строки с примененным фильтром", {"Товар", "Мин.цена"}, {{"Tab", each _, type table}}) ), затем добавить столбец со списком поставщиков(= Table.AddColumn(#"Сгруппированные строки1", "Поставщики", each [Tab][Поставщик])) и развернуть с разделителем (= Table.TransformColumns(#"Добавлен пользовательский объект", {"Поставщики", each Text.Combine(List.Transform(_, Text.From), ","), type text}) .
Виталий, проверю в ближайшее время, но уже чувствую, что рабочая идея. Спасибо!
Виталий, всё равно придётся ссылаться на столбец таблицы и писать Text.Combine. Или я чего-то не понял?
Мне с переменными сложно, поэтому я делал через вложенные блоки let.
Принцип такой: я вывел N строк таблицы с минимальным значением цены, а N привязал к числу повторов в таблице самого минимального значения.
После добавления столбца Rows, где в каждой ячейке сгруппированная таблица, добавил столбец:
#"Добавлен пользовательский объект" =
Table.AddColumn(
#"Сгруппированные строки", "Пользовательский",
each let
Таблица = [Rows]
in Table.MinN(Таблица, "Цена", List.Count(List.Select(Таблица[Цена], each _ = List.Min(Таблица[Цена]) ) )
))
То есть я внутри шага с добавлением столбца задал как бы ещё один шаг "Таблица" и присвоил этому шагу значения в столбце "Rows", то есть те самые таблицы в ячейках. И далее уже ссылался на шаг "Таблица", подразумевая под ним эти самые таблицы в ячейках
Я пробовал напрямую, без вложенного блока let, но PQ выдавал ошибку