Создайте накопленную сумму за несколько дней до этого, не вдаваясь в будущее, используя Power Pivot - PullRequest
0 голосов
/ 03 мая 2018

Я хотел бы создать сводную таблицу с помощью Power Pivot, которая будет накапливать сумму заявок за несколько дней до срока.

Вот пример того, что я хотел бы (на дату за 2 дня до срока 2018FA):

|--------|-----|-----|-----|-----|-----|-----|
| Term   |  5  |  4  |  3  |  2  |  1  |  0  |
|--------|-----|-----|-----|-----|-----|-----|
| 2016FA |  1  |  2  |  5  |  5  |  5  |  5  |
|--------|-----|-----|-----|-----|-----|-----|
| 2017FA |  2  |  3  |  5  |  6  |  6  |  6  |
|--------|-----|-----|-----|-----|-----|-----|
| 2018FA |  1  |  2  |  3  |  4  |     |     |
|--------|-----|-----|-----|-----|-----|-----|

Пример таблицы можно найти здесь с исходными данными: https://1drv.ms/x/s!An5LyDXEQx2lh7AO7ecw5zpuw7grIQ

Я попробовал следующую формулу безуспешно:

Applicants (PiT) [Alt]:=VAR MaxDate = MAX( Dates[Full_Date] )
RETURN
CALCULATE(
    [Applicants],
    FILTER(
        ALL( Dates ),
        'Dates'[Days_before_term] >= MAX( 'Dates'[Days_before_term] ) &&
             'Dates'[Full_Date] <= MaxDate
    )
)

Может кто-нибудь пролить свет на то, что я делаю неправильно?

Спасибо!

1 Ответ

0 голосов
/ 04 мая 2018

Я бы оставил ваш первый Applicants (PiT) показатель как есть, а затем создал бы обертку, чтобы исключить ненужные даты.

Вот мера подсчета:

Applications (PiT) =
    CALCULATE(
        DISTINCTCOUNT(Applications[ID]),
        FILTER(
            ALL( 'Dates'[Days_before_term] ),
            'Dates'[Days_before_term] >= MAX( 'Dates'[Days_before_term] )))
        )
    )

А вот и оболочка:

Wrapper = 
    VAR MaxDate = CALCULATE(MAX(Applications[Date]), ALL(Applications))
    RETURN IF(MAX(Dates[Full_Date]) > MaxDate,
              BLANK(),
              Applications[Applicants (PiT) [Alt]]])

Вместо этого используйте меру обертки в своей таблице.

...