Dela via


LOOKUPVALUE

Gäller för:Beräknad kolumnBeräknad tabellMåttVisuell 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

Period 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 det 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 någon 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).

Kommentarer

  • 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 och search_value .

  • Parametrarna search_value och alternateResult 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 Försäljning funktionen LOOKUPVALUE för att returnera kanalvärden från tabellen Försäljningsorder.

CHANNEL = 
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey],
    [SalesOrderLineKey]
)

Men i det här fallet, eftersom det finns en relation mellan tabellerna Försäljningsorder och Försäljning, är det mer effektivt att använda funktionen RELATED.

CHANNEL = RELATED('Sales Order'[Channel])

FUNKTIONEN RELATED (DAX)
Informationsfunktioner