Суммируйте строку со следующим значением строки и захватывайте следующее значение в другом столбце для выбранной даты - PullRequest
0 голосов
/ 19 июня 2019

Допустим, у меня есть эти данные:

         Earn     Earn Cum.
13-Apr       -        -   
14-Apr      48        48 
15-Apr     257       305 
16-Apr     518       823 
17-Apr     489     1,312 
18-Apr     837     2,149 
19-Apr   1,005     3,154 
20-Apr   1,021     4,175 
21-Apr   1,463     5,638 
22-Apr   2,630     8,268 
23-Apr   2,993    11,261 
24-Apr   3,354    14,615 
25-Apr   4,332    18,947 
26-Apr   4,885    23,832 
27-Apr   4,514    28,346 
28-Apr   4,356    32,702 
29-Apr   4,824    37,526 
30-Apr   7,082    44,608 
1-May    6,091    50,699 
2-May    1,407    52,106 

Когда в выпадающем меню выбрана дата, например: 1 мая, я бы хотел суммировать строки 1 мая со следующей строкой 2-Можно для столбца Заработать и получить следующее значение 52,106 для столбца Заработать Cum. .Результат должен быть:

1-May    7,498    52,106

Другой пример: если выбранная дата была 30 апреля, результат должен быть:

30-Apr  13,173    50,699    

Я почесал голову, пытаясь сделать это, используямера в Power BI.

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Я назову вашу таблицу "Данные".

Создание меры:

Next Earn =
VAR Current_Date = MAX ( Data[Date] )
VAR Next_Date = Current_Date + 1
RETURN
    CALCULATE (
        SUM ( Data[Earn] ),
        Data[Date] = Current_Date || Data[Date] = Next_Date
    )

Создание другой меры:

Next Cum Earn = 
VAR Current_Date =  MAX ( Data[Date] )
VAR Next_Date = Current_Date + 1
RETURN
    CALCULATE ( SUM ( Data[Earn Cum] ), Data[Date] = Next_Date )

Результат:

enter image description here

Примечание: код предполагает, что ваши даты являются последовательными (без пробелов).Если у них есть пробелы, все немного сложнее.

1 голос
/ 19 июня 2019

Это поможет получить доступ к данным о дате, поэтому создайте таблицу дат, если у вас ее еще нет. Следующий дакс устанавливает небольшую таблицу, которая едва покрывает пример данных в вашем примере.

Date = CALENDAR(Date(2019,4,10),Date(2019,5,5))

Создайте связь между датами в вашей таблице и новым измерением даты. Добавьте срез для ваших визуальных элементов, используя измерение Date.

Мы можем использовать IF и ISFILTERED, чтобы проверить, выполняется ли фильтрация. Если мы не фильтруем Date, мы получаем нормальное поведение таблицы. Если мы это сделаем, мы увидим наш измененный результат.

Earn _ Alt = 
var tomorrow = CALCULATE (
    SUM(Table1[Earn]),
    dateadd('Table1'[Date], 1, DAY)
 )

return Sum(Table1[Earn]) + IF(ISFILTERED`('Date'[Date]),tomorrow,0)`

и

Earn Cum. _ Alt = IF(ISFILTERED('Date'[Date]),
CALCULATE (
    SUM(Table1[Earn Cum.]),
    dateadd('Table1'[Date], 1, DAY)
 ),
SUM(Table1[Earn Cum.]))

Результаты:

-Unfiltered- enter image description here

-Filtered- enter image description here

...