Страницы: 1
RSS
DAX Расчет суммы по наименьшему значению атрибута из связанной таблицы
 
Добрый день! Помогите пожалуйста написать меру в DAX. Есть таблица sales и связанная таблица factor. Необходимо расчитать сумму SaleSum. Если в таблице sales несколько одинаковых SaleCode, то сумму нужно брать по минимальному FactorId из связанной таблица factor. Пример во вложении.
 
Проверьте: только Вы не правильно указали сумма для b03    310,00 ₽
а должно быть 998 так как в таблице у вас мин для b03

 
SaleIdSaleCodeSaleSumFactorCode
1a01234FactorTwo
2a01169FactorFour
3a02529FactorOne
4a03128FactorThree
5a04212FactorOne
6a04819FactorThree
7b01542FactorThree
8b02703FactorFour
9b03310FactorTwo
10b03998FactorOne
Код
=
CALCULATE (
    SUM(sales[SaleSum]),
    'factor'[FactorId]
        = MINX (
            ADDCOLUMNS ( VALUES ( sales ), "ID", RELATED ( factor[FactorId] ) ),
            [ID]
        )
)
Изменено: azma - 18.02.2022 16:52:09
 
, , Большое спасибо!

Цитата
написал:
Вы не правильно указали
Вы правы, ошибся.
 
Цитата
написал:
Код
А почему то в Excel'e и Power BI версии для Report Server эта магия не работает(
 
не понял, как не работает?
я проверял меру в power bi desktop
Изменено: azma - 18.02.2022 17:52:38
 
а так:
Код
=
CALCULATE (
    SUM ( sales[SaleSum] );
    FILTER (
        'factor';
        'factor'[FactorId]
            = MINX (
                ADDCOLUMNS ( VALUES ( sales ); "ID"; RELATED ( factor[FactorId] ) );
                [ID]
            )
    )
)
Изменено: azma - 18.02.2022 18:04:42
 
Код
=
SUMX (
    FILTER (
        ADDCOLUMNS (
            'sales';
            "_min";
                CALCULATE (
                    MINX (
                        SUMMARIZE (
                            ADDCOLUMNS ( 'sales'; "_rel"; RELATED ( factor[FactorId] ) );
                            'sales'[SaleCode];
                            [_rel]
                        );
                        [_rel]
                    );
                    ALLEXCEPT ( sales; 'sales'[SaleCode] )
                );
            "_rel"; RELATED ( factor[FactorId] )
        );
        [_min] = [_rel]
    );
    CALCULATE ( SUM ( 'sales'[SaleSum] ) )
)
 
azma, так итоги неверные
 
Цитата
написал:
я проверял меру в power bi desktop
Да, там работает, а в Excel и в Power BI RS не работает.

Цитата
написал:
а так:
так работает, спасибо!

Цитата
написал:
Код
а так совсем хорошо, т. к. еще и итоги верные.

Еще раз большое спасибо!
 
Не понимаю почему при отправке сообщения, пропадают имена участников форума, которые я упоминал в сообщении.
 
Перейдите в режим BB-Code
 
Цитата
написал:
так итоги неверные
1)
Код
SumTotal==SUM(sales[SaleSum])

2)
Код
=
SUMX (
    VALUES ( sales[SaleCode] ),
    CALCULATE (
        SUMX (
            TOPN (
                1,
                ADDCOLUMNS ( VALUES ( sales ), "ID", RELATED ( factor[FactorId] ) ),
                [ID], ASC
            ),
            [SumTotal]
        ),
        ALLEXCEPT ( sales, sales[SaleCode] )
    )
)
 
azma , супер!
 
Цитата
написал:
azma  , супер!
Автор здесь
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=143655&a...

Код
=SUMX(VALUES(sales[SaleCode]),
    var minID = CALCULATETABLE(TOPN (
                1,
                ADDCOLUMNS ( VALUES ( sales ), "ID", RELATED ( factor[FactorId] ) ),
                [ID], ASC
            ))
    Return CALCULATE(SUM('sales'[SaleSum]), minID)
)
Изменено: azma - 18.02.2022 20:04:58
Страницы: 1
Наверх