Есть ли код Dax, чтобы взять разницу между 2 строками в обобщенной таблице? - PullRequest
1 голос
/ 30 мая 2019

Мне нужно иметь возможность получить разницу между двумя последовательными строками в итоговой таблице по рангу, чтобы я мог затем получить среднее значение различий каждой строки.И я не могу создать новую таблицу, так как мне нужно, чтобы этот DAX-запрос был фильтруемым

Я смог сделать это далеко, но не знаю, как добавить столбец различий, который будет показывать разницу DSOValueмежду строками 1-2, 2-3, 3-4 ...

ADDCOLUMNS (
    SUMMARIZE (
        Table1,
        Table1[Date],
        "DSOValue", DIVIDE ( SUM ( 'Table1'[AR] ) * 91.5, SUM ( 'Table1'[Sales] ), 0 )
    ),
    "Rank", RANKX (
        Table1,
        CALCULATE (
            COUNTROWS ( Table1),
            FILTER ( Table1, Table1[Date] <= EARLIER ( Table1[Date] ) )
        ),,ASC,DENSE)
)

Я пытался встроить этот код в другую функцию ADDCOLUMNS, но он не позволит мне CALCULATE и FILTER на моем созданномстолбцы (DSOValue и RANK)

1 Ответ

0 голосов
/ 30 мая 2019

вы можете использовать следующее:

Diff = 'Table1'[ DSOValue ] - LOOKUPVALUE('Table1'[ DSOValue ]; 'Table1'[Date     ];CALCULATE( MAX('Table1'[Date     ]);FILTER('Table1';'Table1'[Date     ]<EARLIER('Table1'[Date     ]))))

Примечание: вы не можете использовать <= здесь, он выберет свою собственную дату, и все будет нулевым.Также было бы проще добавить столбец индекса, если он у вас есть, вы можете использовать Lookupvalue с индексом -1 </em>

...