LOOKUPVALUE
gäller för:beräknad kolumn
beräknad tabell
Mått
Visuell beräkning
Returnerar värdet för raden som uppfyller alla villkor som anges av ett eller flera sökvillkor.
Syntax
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parametrar
Term | Definition |
---|---|
result_columnName |
Namnet på en befintlig kolumn som innehåller det värde som du vill returnera. Det kan inte vara ett uttryck. |
search_columnName |
Namnet på en befintlig kolumn. Den kan finnas i samma tabell som result_columnName eller i en relaterad tabell. Det kan inte vara ett uttryck. Du kan ange flera par med search_columnName och search_value. |
search_value |
Värdet som ska sökas efter i search_columnName. Du kan ange flera par med search_columnName och search_value. |
alternateResult |
(Valfritt) Värdet som returneras när kontexten för result_columnName har filtrerats ned till noll eller mer än ett distinkt värde. Om den inte anges returnerar funktionen BLANK när result_columnName filtreras ned till noll värden eller ett fel när det finns mer än ett distinkt värde i kontexten för result_columnName. |
Returvärde
Värdet för result_columnName
på raden där alla par av search_columnName
och search_value
har en exakt matchning.
Om det inte finns en matchning som uppfyller alla sökvärden returneras BLANK eller alternateResult
(om det anges). Med andra ord returnerar funktionen inte ett uppslagsvärde om bara vissa av kriterierna matchar.
Om flera rader matchar sökvärdena och värdena i result_columnName
för dessa rader är identiska returneras det värdet. Men om result_columnName
returnerar olika värden returneras ett fel eller alternateResult
(om det anges).
Anmärkningar
Om det finns en relation mellan tabellen som innehåller resultatkolumnen och tabellerna som innehåller sökkolumnerna är det i de flesta fall effektivare att använda funktionen RELATED i stället för LOOKUPVALUE och ger bättre prestanda.
Du kan ange flera par med
search_columnName
ochsearch_value
.Parametrarna
search_value
ochalternateResult
utvärderas innan funktionen itererar genom raderna i söktabellen.Undvik att använda ISERROR- eller IFERROR-funktioner för att avbilda ett fel som returneras av LOOKUPVALUE. Om vissa indata till funktionen resulterar i ett fel när ett enda utdatavärde inte kan fastställas, är det mest tillförlitliga och mest högpresterande sättet att hantera felet att tillhandahålla en
alternateResult
parameter.Parametern
alternateResult
returnerar ett fel om det anges i en beräknad Power Pivot-kolumn.Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).
Exempel 1
I det här exemplet används LOOKUPVALUE för att söka efter den valuta som används för att betala för beställningen den dag då ordern gjordes:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Både orderdatum och valuta krävs för att hitta genomsnittskursen för rätt datum och valuta. OrderDateKey och CurrencyKey är de nycklar som används för att slå upp genomsnittskursen i tabellen Valutakurs.
Du kan använda växelkursen för att beräkna försäljningsbeloppet i lokal valuta med:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Exempel 2
I det här exemplet använder följande beräknade kolumn som definierats i tabellen Sales funktionen LOOKUPVALUE för att returnera kanalvärden från tabellen Sales Order.
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Men i det här fallet, eftersom det finns en relation mellan tabellerna Sales Order och Sales, är det effektivare att använda funktionen RELATED.
CHANNEL = RELATED('Sales Order'[Channel])