DAX индекс и совпадение?
Добрый день,
В Power Pivot я собираюсь сделать так, чтобы значение зависело от двух других столбцов в одной и той же таблице.
Что я сделал первым: получил последнюю дату для имени, занесенного в таблицу. Теперь мне нужно сопоставить идентификационный номер на основе имени и даты.
Например:
ID | Name | Date | Latest Date | ID Number
1 | John | 1/1/2018 | 1/5/2018 |
2 | Kyle | 1/15/2018 | 1/30/2018 |
3 | John | 1/5/2018 | 1/5/2018 |
4 | Kyle | 1/30/2018 | 1/30/2018 |
Что мне нужно это:
ID | Name | Date | Latest Date | ID Number
1 | John | 1/1/2018 | 1/5/2018 | 3
2 | Kyle | 1/15/2018 | 1/30/2018 | 4
3 | John | 1/5/2018 | 1/5/2018 | 3
4 | Kyle | 1/30/2018 | 1/30/2018 | 4
Любые идеи о том, как выполнить сценарий, чтобы принять это?
3 ответа
Ближайшим эквивалентом является функция LOOKUPVALUE.
Это должно работать как вычисляемый столбец:
= LOOKUPVALUE(Table1[ID], Table1[Date], [Latest Date])
Существуют и другие способы сделать это с помощью фильтрации, но вышеизложенное должно быть наиболее знакомым.
попробуй это
Calculated ID Number =
VAR _slt =
SELECTEDVALUE ( 'Table'[Latest Date] )
RETURN
LOOKUPVALUE ( 'Table'[ID], 'Table'[Date], _slt )
Ты можешь использовать LOOKUPVALUE
если у вас будет только один идентификационный номер на последнюю дату / имя. Используя это, чтобы вернуть идентификатор, который соответствует имени и самой последней дате:
В качестве расчетного столбца;
LOOKUPVALUE (
Table1[ID],
Table1[Name], [Name],
Table1[Date], [Latest Date]
)
Как мера;
Latest ID:=
VAR LookupName =
IF (
HASONEVALUE ( Table1[Name] ),
VALUES ( Table1[Name] ),
BLANK ()
)
VAR LookupDate =
IF (
HASONEVALUE ( Table1[Latest Date] ),
VALUES ( Table1[Latest Date] ),
BLANK ()
)
RETURN
LOOKUPVALUE (
Table1[ID],
Table1[Name], LookupName,
Table1[Date], LookupDate
)
Однако, если у вас есть более одного идентификационного номера с совпадающим именем и датой, которая соответствует самой поздней дате, это вернет ошибку:
Таблица нескольких значений была предоставлена, где ожидалось одно значение
Вместо этого вы можете использовать:
Latest ID:=
VAR LookupDate =
IF (
HASONEVALUE ( Table1[Latest Date] ),
VALUES ( Table1[Latest Date] ),
BLANK ()
)
RETURN
CALCULATE (
FIRSTNONBLANK ( Table1[ID] , 1),
FILTER (
ALLEXCEPT ( Table1, Table1[Name] ),
Table1[Date] = LookupDate
)
)