Страницы: 1
RSS
DAX. Использоване для больших мер переменных VAR и RETURN
 
Добрый день.
Помогите пожалуйста разобраться с переменной VAR и RETURN в DAX.
Очень долго отображается визуализация в Power BI desktop, на "вебе" вообще не отображается.
Посоветовали использовать для больших мер переменные.
Нашел примеры но они простенькие, и додумать как мне использовать у моей модели не получается.
Вот есть пример меры, как можно ее написать с переменными?
Скрытый текст

Спасибо.
 
................. что это?
По теме: плюс переменной в том, что она пересчитывается один раз. И если в вашей, извиняюсь, мере есть повторные вычисления, то да: целесообразно использовать переменные. Иначе ничего не изменится.
 
О мои глаза... Используйте daxformatter.com для форматирования кода DAX.
Sancho2020, я правильно понял, что у вас значения курсов лежат в 12 отдельных таблицах из одной строки и одного столбца?
С таким подходом вам переменные не помогут :)
Вам нужно:
1) сделать в 'ПрямыеЗатратыТМЦиУслугиПлан' столбец Курс, в котором курсы будут подтянуты в соответствии с месяцем.
2) тогда вся мера схлопнется в
Код
=
CALCULATE(
    SUMX(
        'ПрямыеЗатратыТМЦиУслугиПлан';
        'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] * 'ПрямыеЗатратыТМЦиУслугиПлан'[Курс]
    );
    'ПрямыеЗатратыТМЦиУслугиПлан'[НоменклатурнаГруппа] = "Энергоноситель"
)
Изменено: Максим Зеленский - 17.07.2020 16:28:44
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
я правильно понял,
Нет, курсы у меня это параметр What IF на каждый месяц.
Для возможности корректировать остаток плана по курсу.
 
Sancho2020, мда. Ну тогда вот так можно облагородить - вынести общий фильтр наружу:
Код
Тест план =
CALCULATE (
    (
        CALCULATE (
            SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
            'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Январь"
        ) / [Значение КУРС Январь]
    )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Февраль"
            ) / [Значение КУРС Февраль]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Март"
            ) / [Значение КУРС Март]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Апрель"
            ) / [Значение КУРС Апрель]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Май"
            ) / [Значение КУРС Май]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Июнь"
            ) / [Значение КУРС Июнь]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Июль"
            ) / [Значение КУРС Июль]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Август"
            ) / [Значение КУРС Август]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Сентябрь"
            ) / [Значение КУРС Сентябрь]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Октябрь"
            ) / [Значение КУРС Октябрь]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Ноябрь"
            ) / [Значение КУРС Ноябрь]
        )
        + (
            CALCULATE (
                SUM ( 'ПрямыеЗатратыТМЦиУслугиПлан'[СуммаЗатратРубезНДС] );
                'ПрямыеЗатратыТМЦиУслугиПлан'[Месяц] = "Декабрь"
            ) / [Значение КУРС Декабрь]
        );
    'ПрямыеЗатратыТМЦиУслугиПлан'[НоменклатурнаГруппа] = "Энергоноситель"
)
F1 творит чудеса
 
Спасибо.
Страницы: 1
Наверх