Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
[Power Query] Можно продавать или нет в зависимости от 4x условий
 
Добрый день! Коллеги, прошу помощи в решении задачи на PQ. Во вложении файл, в котором необходимо определить можно ли осуществлять продажу или нет в зависимости от условий:

1) Если ID один, то если Если Исключение = 1, то НЕТ, если Исключение = 0, то ДА
2) Если ID несколько и хотя бы для одного из них Исключение = 1, то для каждого ID НЕТ
3) Если ID несколько и для каждого из них Исключение = 0, а Статус каждого из них  = "Не предлагалось", то для всех ДА
4) Если ID несколько и для каждого из них Исключение = 0, а Статус <> "Не предлагалось", то НЕТ для строк со статусом "Не предлагалось", а для остальных строк ДА

Написал громоздкую формулу в столбце AA, которая учитывает эти условия, но файл очень сильно тормозит при большом объеме данных. Хотелось бы реализовать все эти условия в PQ, но знаний для этого недостаточно. Мне почему то кажется, что задачу можно решить через группировку, но, возможно, я ошибаюсь.
Изменено: Murderface_ - 18 Ноя 2019 15:42:34
 
У меня получилось как-то так. Мне кажется, что в Вашем алгоритме пункты 1 и 3 избыточные.

а) Если ID несколько и хотя бы для одного из них Исключение = 1, то для каждого ID НЕТ
б) Для оставшегося если Статус = "Не предлагалось", тогда ДА

UPD
Ну и формула тогда получается существенно более простая:
=(СУММЕСЛИ([ID];[@ID];[Исключение]) + ([@Статус]<>"Не предлагалось"))=0
Изменено: Wiss - 18 Ноя 2019 13:40:51
Я не волшебник, я только учусь.
 
Wiss, спасибо, но в вашем варианте не работает 4 условие (см. вложение).
Изменено: Murderface_ - 18 Ноя 2019 13:46:48
 
Murderface_, там в столбце "Статус" стоят значения отличные от "Не предлагалось" поэтому Ложь. Вроде бы всё верно.
Эта колонка регулируется последней строчкой запроса, если я понял Вас неправильно, то можно просто поменять = на <>.
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
можно просто поменять
Не так все просто, к сожалению. Полученный результат все равно отличается от формульного решения и 4ое условие не работает  :(  
 
А можно всё-таки пример конкретных строк, которые считаются не правильно?
Да, мой результат отличается от формульного, потому что я руководствовался не формулой, а описанным Вами алгоритмом.
Строчку Статус <> "Не предлагалось", то НЕТ, а для остальных ДА  я читаю как Если статус = "Не предлагалось", тогда ДА.

4-е правило работает, но выдаёт результат противоположный формуле. Тут или формула с алгоритмом не бьётся или я алгоритм понял наоборот.
В приложении 2 варианта (прямой и обратный)
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
А можно всё-таки пример конкретных строк, которые считаются не правильно?
Да, конечно. Вот тут сопоставил ваше решение и формулу. Если в последнем шаге запроса PQ изменить "=" на "<>", то тоже будет отличаться от формулы.
Изменено: Murderface_ - 18 Ноя 2019 14:26:52
 
Доброе время суток
Цитата
Murderface_ написал:
то тоже будет отличаться от формулы.
Цитата
Murderface_ написал:
3) Если ID несколько и для каждого из них Исключение = 0, а Статус = "Не предлагалось, то для всех ДА
4) Если ID несколько и для каждого из них Исключение = 0, а Статус <> "Не предлагалось", то НЕТ, а для остальных ДА
Тогда не верно поставлены эти условия. Выборка
20191102375498Не предлагалось0НЕТ
20191102375498Клиент не заинтересован0ДА
ID одинаковый, Исключение = 0. Для второй строки "Клиент не заинтересован" <> "Не предлагалось" - должно быть НЕТ, а для первой строки ДА по 4 условию. Где правда?
Изменено: Андрей VG - 18 Ноя 2019 15:17:55
 
Лист1 со сравнением формулы и моего PQ
Лист2 PQ переделан так, чтобы результат совпадал с формулой.
Я не волшебник, я только учусь.
 
Цитата
Андрей VG написал:
Где правда?
Андрей, здравствуйте! В этом случае срабатывает 4 условие, а именно для строки со статусом "Не предлагалось" ответ будет НЕТ, т. к. есть другая строка с таким же ID и со статусом <> "Не предлагалось", для которой ответ ДА.

Если же несколько строк с одинаковым ID имеют Исключение = 0 и статус "Не предлагалось", то срабатывает 3 условие и ответ для всех будет ДА.
 
Wiss, огромное вам спасибо! Решение мышкой, а я полдня уже голову ломаю сижу  :D  
 
Цитата
Murderface_ написал:
т. к. есть другая строка с таким же ID и со статусом <> "Не предлагалось", для которой ответ ДА.
Что противоречит исходной постановке.
Цитата
Murderface_ написал:
4) Если ID несколько и для каждого из них Исключение = 0, а Статус <> "Не предлагалось", то НЕТ, а для остальных ДА
Вы уж исправьте тогда :)
 
Цитата
Андрей VG написал:
исправьте
исправил в первом сообщении  :)  
 
Цитата
Murderface_ написал:
исправил
Ура!  :D  
Я не волшебник, я только учусь.
Страницы: 1
Читают тему (гостей: 1)
Наверх