Страницы: 1
RSS
Dax Мера - подсчёт уникальных закупок, которые не присутствовали в предыдущем периоде
 
Добрый день, друзья! Нужна ваша помощь. Есть база данных с 5 млн строк, каждая строчка  - закупка конкретного препарата, конкретной аптекой в конкретном периоде. Задача в том, чтобы каждый месяц суммировать новые закупки, но новыми считать надо только те, которые не имеют аналогов в предыдущем периоде. То-есть, если аптека 1 купила товар А в сентябре, но уже покупала его в августе ( или раньше) то это не новая закупка, её считать не надо. А вот если Аптека 2 купила Товар Б в сентябре, и (после проверки по базе) оказывается, что она еще не покупала его, тогда мы должны сложить. В конце должен получится прирост по каждому препарату. И еще мера должна быть универсальная от месяца к месяцу.  К изучению DAX и powerBI приступил недавно, раньше только VBA и экселем занимался, очень надеюсь на любую помощь. В голове у меня это примерно так должно работать (не код, просто лоигка):

Либо через проверку, по переменным
Код
filter period - current month
for each row 
 if in "закупки" 
 row with same SKU + same SMSID exist
then skip
else sum

Или попробовать через минимальный период

отфильтровать min PERIOD для каждого SMSID + SKU
Код
if min Period = current Period 
then sum

(не знаю как это в dax реализовать, чтобы остались только минимальные пириоды, тогда если минимальный равен текущему, значит закупка новая)
 
Доброе время суток
Вариант
 
тоже вариант:
Код
Сумма новых =
CALCULATE(
    SUM( 'Таблица1'[АТ] );
    EXCEPT(
        SUMMARIZE( 'Таблица1'; 'Таблица1'[SKU]; 'Таблица1'[SMSid] );
        CALCULATETABLE(
            SUMMARIZE( 'Таблица1'; 'Таблица1'[SKU]; 'Таблица1'[SMSid] );
            FILTER(
                ALL( 'Таблица1'[Period] );
                'Таблица1'[Period] < MIN( 'Таблица1'[Period] )
            )
        )
    )
)
F1 творит чудеса
Страницы: 1
Наверх