LOOKUPVALUE

Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening

Retourneert de waarde voor de rij die voldoet aan alle criteria die zijn opgegeven door een of meer zoekvoorwaarden.

Syntaxis

LOOKUPVALUE (
    <result_columnName>,
    <search_columnName>,
    <search_value>
    [, <search2_columnName>, <search2_value>]…
    [, <alternateResult>]
)

Parameters

Term Definitie
result_columnName De naam van een bestaande kolom die de waarde bevat die u wilt retourneren. Het kan geen expressie zijn.
search_columnName De naam van een bestaande kolom. Deze kan zich in dezelfde tabel bevinden als result_columnName of in een gerelateerde tabel. Het kan geen expressie zijn. U kunt meerdere paren van search_columnName en search_value opgeven.
search_value De waarde die moet worden gezocht in search_columnName. U kunt meerdere paren van search_columnName en search_value opgeven.
alternateResult (Optioneel) De waarde die wordt geretourneerd wanneer de context voor result_columnName wordt gefilterd op nul of meer dan één afzonderlijke waarde. Als deze niet is opgegeven, wordt de functie geretourneerd BLANK wanneer result_columnName wordt gefilterd op nulwaarden of een fout wanneer de context voor result_columnName meer dan één afzonderlijke waarde heeft.

Retourwaarde

De waarde van result_columnName in de rij waar alle paren van search_columnName en search_value een exacte overeenkomst hebben.

Als geen overeenkomst voldoet aan alle zoekwaarden, retourneert BLANK de functie of alternateResult (indien opgegeven). Met andere woorden, de functie retourneert geen opzoekwaarde als slechts een deel van de criteria overeenkomt.

Als meerdere rijen overeenkomen met de zoekwaarden en de waarden in de result_columnName voor deze rijen identiek zijn, wordt die waarde geretourneerd. Als result_columnName echter verschillende waarden worden geretourneerd, retourneert de functie een fout of alternateResult (indien opgegeven).

Opmerkingen

  • Als er een relatie bestaat tussen de tabel die de resultaatkolom en tabellen bevat die de zoekkolommen bevatten, is het gebruik van LOOKUPVALUE de RELATED functie in de meeste gevallen efficiënter en levert betere prestaties.

  • U kunt meerdere paren van search_columnName en search_value.

  • De parameters search_value en alternateResult worden geëvalueerd voordat de functie de rijen van de zoektabel doorloopt.

  • Vermijd het gebruik ISERROR of IFERROR vastleggen van een fout die wordt geretourneerd door LOOKUPVALUE. Als sommige invoer voor de functie resulteert in een fout wanneer één uitvoerwaarde niet kan worden bepaald, is het opgeven van een alternateResult parameter de meest betrouwbare en hoogst presterende manier om de fout te verwerken.

  • De parameter alternateResult retourneert een fout als deze is opgegeven in een berekende Power Pivot-kolom.

  • Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).

Voorbeelden in dit artikel kunnen worden gebruikt met het voorbeeldmodel Adventure Works DW 2020 Power BI Desktop. Zie DAX voorbeeldmodelom het model op te halen.

Voorbeeld 1

In dit voorbeeld LOOKUPVALUE zoekt u het gemiddelde tarief voor de valuta die wordt gebruikt om voor de bestelling te betalen op de dag dat de bestelling is geplaatst:

Exchange Rate =
LOOKUPVALUE (
    'Currency Rate'[Average Rate],
    'Currency Rate'[CurrencyKey], [CurrencyKey],
    'Currency Rate'[DateKey], [OrderDateKey]
)

U hebt zowel de orderdatum als de valuta nodig om het gemiddelde tarief voor de juiste datum en valuta te vinden. OrderDateKey en CurrencyKey zijn de sleutels die worden gebruikt om het gemiddelde tarief in de tabel Valutatarief op te zoeken.

U kunt de wisselkoers gebruiken om het verkoopbedrag in lokale valuta te berekenen met:

Sales Amount Local Currency =
[Sales Amount] * [Exchange Rate]

Voorbeeld 2

In dit voorbeeld gebruikt de volgende berekende kolom die is gedefinieerd in de tabel Sales de functie LOOKUPVALUE om kanaalwaarden te retourneren uit de tabel Sales Order.

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

Omdat er echter een relatie bestaat tussen de tabellen Verkooporder en Verkoop , is het efficiënter om de RELATED functie te gebruiken.

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