Довольно странно иметь первые три строки в той же таблице, что и остальные, но я думаю, что-то вроде этого может работать для вас:
Answer = Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], MOD ( Table[ID], 10 ) )
Это делит Q
на значение, соответствующеепоиск по последней цифре.
Редактировать:
Если вы хотите явно указать совпадения ID, то я бы рекомендовал использовать SWITCH
а не набор вложенных IF
функций.
Например,
Answer =
SWITCH (
Table[ID],
11, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 1 ),
12, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 2 ),
13, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 3 ),
31, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 1 ),
32, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 2 ),
33, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 3 ),
51, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 1 ),
52, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 2 ),
53, Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], 3 )
)
Или, более компактно,
Answer =
VAR LookupID =
SWITCH (
TRUE (),
Table[ID] IN { 11, 31, 51 }, 1,
Table[ID] IN { 12, 32, 52 }, 2,
Table[ID] IN { 13, 33, 53 }, 3
)
RETURN
Table[Q] / LOOKUPVALUE ( Table[Q], Table[ID], LookupID )
. SWITCH(TRUE(),...)
конструкция:
DAX - дьявольский гений «ПРАВДЫ ПЕРЕКЛЮЧЕНИЯ»