Страницы: 1
RSS
DAX. Заменить значения в одной таблице значениями из другой по нескольким условиям
 
Добрый день!

Во вложении пример в Экселе, но нужно всё это провернуть в PowerBi.
Нужно заменить значения в одной таблице значениями из другой по нескольким условиям

К сожалению, пока еще очень плохо понимаю DAX
 
Код
=
IF (
    LOOKUPVALUE (
        'Таблица2'[План 2];
        'Таблица2'[Месяц]; 'Таблица1'[Месяц];
        'Таблица2'[Год]; 'Таблица1'[Год];
        'Таблица2'[Сеть]; 'Таблица1'[Сеть]
    )
        = BLANK ();
    'Таблица1'[План1];
    LOOKUPVALUE (
        'Таблица2'[План 2];
        'Таблица2'[Месяц]; 'Таблица1'[Месяц];
        'Таблица2'[Год]; 'Таблица1'[Год];
        'Таблица2'[Сеть]; 'Таблица1'[Сеть]
    )
)
или
Код
=
MAX (
    LOOKUPVALUE (
        'Таблица2'[План 2];
        'Таблица2'[Месяц]; 'Таблица1'[Месяц];
        'Таблица2'[Год]; 'Таблица1'[Год];
        'Таблица2'[Сеть]; 'Таблица1'[Сеть]
    );
    'Таблица1'[План1]
)
Изменено: mechanix 85 - 17.09.2021 17:12:31
 
Вторая вроде как работает, только оно выбирает максимальное значение из двух таблиц. А как быть, если когда-то будет значение в таблице 2 ниже чем в таблице 1?
 
В таком случае первая формула
 
ещё вариант
Код
=
VAR F_Plan =
    FILTER (
        'Таблица2'[План 2];
        'Таблица2'[Год]='Таблица1'[Год];
            && 'Таблица2'[Месяц]= 'Таблица1'[Месяц];
            && 'Таблица2'[Сеть]= 'Таблица1'[Сеть]
    )
VAR result =
    CALCULATE ( VALUES ( 'Таблица2'[План 2] ), F_Plan )
RETURN
    IF ( result = BLANK (), 'Таблица1'[План1], result )
правда, я не знаю , которые из них быстрее работает
Изменено: vikttur - 18.09.2021 14:33:55
Страницы: 1
Наверх