Страницы: 1
RSS
Извлечение максимумов (PQ)
 
Всем доброго времени суток,
Помогите решить следующую задачу:
Задача: извлечь все уникальные значения из полей 45 и 43, где стоят максимумы в поле "Количество" (все значения могут обновляться естестенно)
То есть должно быть в итоге должно остаться 2 поля:
Способ(поле 45): Запрос предложений/Тендер, Запрос котировок/Запрос цен
Организация (поле 43): АО "Спецтехника", ОАО "41 центральный завод", АО "261 РЗ"


 
Изменено: Zealot92 - 07.08.2020 17:44:44
 
Zealot92, трудно сообразить
Сгруппируйте по столбцам 45 и 43 по максимальным ценам. Затем покажите скриншот - что получилось. Дальше видно будет

Хотя нет. выделите три столбца и удалите дубликаты. Затем покажите скриншот - что получилось. Дальше видно будет
дошло:
Группируете по полю Количество, сортируете от большего к меньшему, шагом "b" оставляете одну верхнюю строку. Затем типа Table.FromColumns(List.Distinct(b[#"45"])&List.Distinct(b[#"43"]))
Наверняка где то что то напутал
Изменено: Михаил Л - 07.08.2020 17:15:51
 
вообще не понятно, как должен выглядеть результат. приложите пример.
F1 творит чудеса
 
Цитата
Михаил Л написал:
оставляете одну верхнюю строку
А как быть, если максимумов несколько, как в примере, там же 4 единицы?
Изменено: Zealot92 - 07.08.2020 17:20:47
 
Zealot92, вот так
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Group = Table.Group(Source, {"Количество"}, {{"a", each _, type table}}),
    Sort = Table.Sort(Group,{{"Количество", Order.Descending}}){0}[a],
    Custom1 = Table.FromColumns({List.Distinct(Sort[#"45"]),List.Distinct(Sort[#"43"])},{"45","43"})
in
    Custom1
 
Михаил Л, спасибо, не совсем понимаю как это корректно вставить только
Сделал пример в формате excel
 
Zealot92, а зачем пример?
Без примера же решено
 

Цитата
Михаил Л написал:
Без примера же решено
Попытался адаптировать решение к файлу excel, выдалась ошибка "Имя "Sort" не распознано. Убедитесь в том, что оно написано верно."
Что я делаю не так?
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    #"Сортированные строки" = Table.Sort(#"Сгруппированные строки",{{"Количество", Order.Descending}}),
    Custom1 = Table.FromColumns({List.Distinct(Sort[#"45"]),List.Distinct(Sort[#"43"])},{"45","43"})
in
    Custom1

Изменено: Zealot92 - 07.08.2020 17:59:58
 
Цитата
Zealot92 написал:
выдалась ошибка "Имя "Sort" не распознано
Да вы еще зеленый :D
Наверное, так
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    Sort = Table.Sort(#"Сгруппированные строки",{{"Количество", Order.Descending}}),
    Custom1 = Table.FromColumns({List.Distinct(Sort[#"45"]),List.Distinct(Sort[#"43"])},{"45","43"})
in
    Custom1
Хотя нет. Так должно быть
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    Group = Table.Group(#"Сгруппированные строки", {"Количество"}, {{"a", each _, type table}}),
    Sort = Table.Sort(Group,{{"Количество", Order.Descending}}){0}[a],
    Custom1 = Table.FromColumns({List.Distinct(Sort[#"45"]),List.Distinct(Sort[#"43"])},{"45","43"})
in
    Custom1
Изменено: Михаил Л - 07.08.2020 18:13:44
 
Цитата
Михаил Л написал:
Да вы еще зеленый
Ну что поделать :sceptic: все с чего-то начинали
 
Zealot92, знаете да, как вставить код?
Ищите кнопку Расширенный редактор, вместо имеющегося вставляете скопированный.
 
Михаил Л, зеленый, но не настолько же)
Пытаюсь теперь объединить построчно, что получилось в 1 ячейку через Text.Combine, как это правильно прописать?+ формула сработала, но не совсем правильно, в итоге выдалось 3 способа, должно быть 2 способа и 3 организации (см.файл Excel, вкладка "Что должно получиться" внизу)
 
так наверное
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    Group = Table.Group(#"Сгруппированные строки", {"Количество"}, {{"a", each _, type table}}),
    Sort = Table.Sort(Group,{{"Количество", Order.Descending}}){0}[a],
    Custom1 = Text.Combine(List.Distinct(Sort[#"45"])&List.Distinct(Sort[#"43"]),", ")
in
    Custom1
вернее. так
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    Group = Table.Group(#"Сгруппированные строки", {"Количество"}, {{"a", each _, type table}}),
    Sort = Table.Sort(Group,{{"Количество", Order.Descending}}){0}[a],
    Custom1 = {Text.Combine(List.Distinct(Sort[#"45"]),", "),Text.Combine(List.Distinct(Sort[#"43"]),", ")}
in
    Custom1
Изменено: Михаил Л - 07.08.2020 18:46:07
 
Михаил Л, спасибо большое, все работает, а что означаем приписка с 0 в конце, 2 последние строчки можно пояснить, если не сложно?
Код
Sort = Table.Sort(Group,{{"Количество", Order.Descending}}){0}[a]
 
Цитата
Zealot92 написал:
можно пояснить
Пожалуйста
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([46] = "конкурентные") and ([21] <> null)),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"45", "43"}, {{"Количество", each List.Average([22]), type number}}),
    Group = Table.Group(#"Сгруппированные строки", {"Количество"}, {{"a", each _, type table}}),
    Sort = Table.Sort(Group,{{"Количество", Order.Descending}}),
    Custom1 = Sort{0},
    Custom2 = Custom1[a],
    Custom3 = List.Distinct(Custom2[#"45"]),
    Custom4 = Text.Combine(Custom3,", "),
    Custom5 = List.Distinct(Custom2[#"43"]),
    Custom6 = Text.Combine(Custom5,", "),
    Custom7 = {Custom4,Custom6}
in
    Custom7
Страницы: 1
Наверх