Найти последний элемент в той же группе с более ранней датой

У меня есть модель Power Pivot с таблицами Project и Date, связанными в отношениях:

Project Step Date
------- ---- ----
   A     1   2-Jan-18
   A     2   4-Jan-18
   B     1   3-Jan-18
   B     2   5-Jan-18

Date
----
1-Jan-18
2-Jan-18
3-Jan-18
4-Jan-18
5-Jan-18
6-Jan-18

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

           A  B
1-Jan-18
2-Jan-18   1
3-Jan-18   1  1
4-Jan-18   2  1
5-Jan-18   2  2
6-Jan-18   2  2

Как Мера может быть написана для достижения этой цели?

2 ответа

Решение

Я получил там в конце концов:

CurrentStep:=
CALCULATE (
    FIRSTNONBLANK( 'Poject'[Step], 1 ),
    TOPN(
        1,
        CALCULATETABLE(
            'Project',
            FILTER( 
                ALL( Date[Date] ), 
                'Date'[Date] <= MAX( Date[Date] )
            )
         ),
         'Project'[Date],
         DESC
    )
)

МЕТОД ФОРМУЛЫ

Используйте следующую формулу в первой ячейке таблицы, которую вы хотите создать и скопировать вниз и вправо. Прежде чем копировать, обновите референтные диапазоны и обратите внимание на $ в формуле

=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($C$3:$C$6)/((F$2=$A$3:$A$6)*($E3=$C$3:$C$6)),1)),IF(ROW(F3)=ROW($F$3),"",F2))

Агрегат выполняет операции с массивами, не будучи массивом. Как таковые диапазоны внутри функции AGGREGATE не должны быть полными ссылками на столбцы. Если вы заметили, что ваша система замедляет вычисления, это может быть связано с тем, что вы выполняете много вычислений в статистической функции.

POC

Другие вопросы по тегам