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
        )
    )
Другие вопросы по тегам