Найти последний элемент в той же группе с более ранней датой
У меня есть модель 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 не должны быть полными ссылками на столбцы. Если вы заметили, что ваша система замедляет вычисления, это может быть связано с тем, что вы выполняете много вычислений в статистической функции.