Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Формула с множественными условиями в DAX в PowerPivot
 
Добрый день, что-то не получается у меня создать формулу ЕСЛИ в купе с И. Может кто-то сможет подсказать что не так делаю, а может так совсем нельзя делать и надо через доп столбец.
Имеется таблица со столбцами: "Код услуги" и "Раздел услуги". Необходимо добавить еще один столбец в котором будет информация в зависимости от того, какая информация содержится в строках столбца "Раздел услуги", но при этом есть исключения которые берутся из столбца "Код услуги". В принципе формула, которую я сделал работает. Но вот когда в исключение попадает не единичное значение, а диапазон, то формула перестает работать.

Пример формулы которая работает:
=IF([Раздел кода услуг]=72&&[Код услуги]<>72040&&[Код услуги]<>72070&&[Код услуги]<>72090&&[Код услуги]<>72140&&[Код услуги]<>72150&&[Код услуги]<>72190&&[Код услуги]<>72291&&[Код услуги]<>72320&&[Код услуги]<>72380&&[Код услуги]<>72400&&[Код услуги]<>72420&&[Код услуги]<>72460;"Должна быть операция";
IF([Раздел кода услуг]=172;"Должна быть операция";
IF([Раздел кода услуг]=73&&[Код услуги]<>73120&&[Код услуги]<>73130;"Должна быть операция";
IF([Раздел кода услуг]=173;"Должна быть операция";
IF([Раздел кода услуг]=75&&[Код услуги]<>75070&&[Код услуги]<>75140&&[Код услуги]<>75150;"Должна быть операция";
IF([Раздел кода услуг]=175;"Должна быть операция";"Не должна быть операция")))))

Но как только добавляем диапазон (выделен красным), PowerPivot ругается (((
=IF([Раздел кода услуг]=72&&[Код услуги]<>72040&&[Код услуги]<>72070&&[Код услуги]<>72090&&[Код услуги]<>72140&&[Код услуги]<>72150&&[Код услуги]<>72190&&[Код услуги]<>72291&&[Код услуги]<>72320&&[Код услуги]<>72380&&[Код услуги]<>72400&&[Код услуги]<>72420&&[Код услуги]<>72460;"Должна быть операция";
IF([Раздел кода услуг]=172;"Должна быть операция";
IF([Раздел кода услуг]=73&&[Код услуги]<>73120&&[Код услуги]<>73130;"Должна быть операция";
IF([Раздел кода услуг]=173;"Должна быть операция";
IF([Раздел кода услуг]=75&&[Код услуги]<>75070&&[Код услуги]<>75140&&[Код услуги]<>75150;"Должна быть операция";
IF([Раздел кода услуг]=175;"Должна быть операция";
IF([Раздел кода услуг]=76&&[Код услуги]<>76160&&[Код услуги]<>76200&&([Код услуги]>76411;[Код услуги]<76891);"Должна быть операция";
IF([Раздел кода услуг]=176;"Должна быть операция";"Не должна быть операция"))))))))
 
Так то что вы указали, это не диапазон
Код
([Код услуги]>76411;[Код услуги]<76891)

вот это диапазон:
Код
([Код услуги]>76411 && [Код услуги]<76891)

В файл не лазил. Попробуйте.
 
PooHkrd, Оооо..., точно. Спасибо огромное, работает. Единственное, я немного не правильно указал, можно ли этот диапазон задать как НЕ РАВНО этому диапазону? Т.е. если код услуги попадает в этот диапазон, то "Не должна быть операция"
 
Можно, функция NOT()
А еще можно написать так:
Код
([Код услуги]<=76411 || [Код услуги]>=76891)

В принципе это одно и то же.
Изменено: PooHkrd - 11 Янв 2019 15:15:23
 
PooHkrd, Ага. Еще раз спасибо. Сначала написал, а потом решил сам попробовал функцию NOT и получилось.  :oops:  Прошу прощение за беспокойство.
 
Цитата
engavis написал:
Пример формулы которая работает:
8-0  8-0  8-0 Жесть, как вы это читаете?
Такие перечисления лучше через IN:
Вариант 1

Вариант 2

А ещё лучше через TREATAS, но лень писать :)
F1 творит чудеса
 
Максим Зеленский, Пишите через notepad++ или что-то другое? Какой синтаксис? Или просто клавишу TAB используете?
Изменено: engavis - 14 Янв 2019 10:06:04
 
Цитата
engavis написал:
или что-то другое?
http://www.daxformatter.com/
F1 творит чудеса
Страницы: 1
Читают тему (гостей: 1)
Наверх