Страницы: 1
RSS
Подстановка значений в Power Pivot по соответствию вхождения в диапазон значений
 
Столкнулся с такой задачей, вроде выглядит несложно, но запнулся.
1. Есть таблица, где указан телефонный номер, он записан в виде целого числа
2. Есть вторая таблица, где указан регион и оператор а также соответствующий им диапазон чисел (от - до) также в виде целого числа

Задача такая - подставить значение региона к соответствующему телефонному номеру из первой таблица
что-то вроде формулы ЕСЛИ(a<=номер<=b;регион1;....) но с неограниченным набором условий

Хотелось бы все это сделать на Power Pivot с DAX, но и просто в Экселе вариант подойдет.
В примере папа значений, но их гораздо больше (больше чем вложений ЕСЛИ можно сделать)
 
Так можно же банальными ЕСЛИ : =ЕСЛИ(([@[Номер телефона]]>=Таблица1[Диапазон от])*([@[Номер телефона]]<=Таблица1[Диапазон до]);Таблица1[Регион])
Соблюдение правил форума не освобождает от модераторского произвола
 
магия! пробую перенести этот же подход  в Power Pivot, выдает ошибку
В чем я ошибся?

 
 
Цитата
Hooch_6600 написал:
В чем я ошибся?
В том что формулы Экселя нельзя так напролом переносить в DAX. Думать надо:
Код
=CALCULATE(VALUES('Таблица1'[Регион]); FILTER('Таблица1';'Таблица1'[Диапазон до]>='Таблица2'[Номер телефона] && 'Таблица1'[Диапазон от]<='Таблица2'[Номер телефона] ) )

Это вариант формулы если затащить ваши таблицы из примера в модель данных как есть.
Формула выдаст ошибку, если в справочнике будут перекрывающиеся диапазоны в разных строках.
Изменено: PooHkrd - 11.09.2019 16:45:06
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Думать надо:
Соглашусь, я тут новичок( В вашей DAX формуле однако разобрался, жаль, что сам не догнал. За науку - Спасибо. Все заработало!
 
Цитата
buchlotnik написал:
ЕСЛИ : =ЕСЛИ(([@[Номер телефона]]>=Таблица1[Диапазон от])*([@[Номер телефона]]<=Таблица1[Диапазон до]);Таблица1[Регион])
В примере у вас все получилось, переношу в рабочую таблицу - у меня проставляется значение ЛОЖЬ
Формула та же, значения числовые
                  =ЕСЛИ(([@[Номер телефона]]>=Таблица1[Диапазон от])*([@[Номер телефона]]<=Таблица1[Диапазон до]);Таблица1[Регион])

Логика перемножений это же аналог функции И. Две ИСТИНЫ дадут ИСТИНУ и сработает условие ЕСЛИ ИСТИНА, но у меня всегда вторая проверка дает ЛОЖЬ.


файл
Изменено: Hooch_6600 - 12.09.2019 10:15:19
Страницы: 1
Наверх