LOOKUPVALUE
Van toepassing op: Berekende kolom Berekende tabel Meting Visuele 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 search_columnName en search_value opgeven. |
search_value | De waarde die moet worden gezocht in search_columnName. U kunt meerdere paren search_columnName en search_value opgeven. |
alternateResult | (Optioneel) De waarde die wordt geretourneerd wanneer de context voor result_columnName is gefilterd op nul of meer dan één afzonderlijke waarde. Als deze niet is opgegeven, retourneert de functie BLANK wanneer result_columnName wordt gefilterd op nulwaarden of een fout wanneer er meer dan één afzonderlijke waarde in de context voor result_columnName is. |
Retourwaarde
De waarde van result_columnName in de rij waar alle paren van search_columnName en search_value een exacte overeenkomst hebben.
Als er geen overeenkomst is die voldoet aan alle zoekwaarden, wordt BLANK of alternateResult (indien opgegeven) geretourneerd. 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 retourneert, wordt een fout of alternateResult (indien opgegeven) geretourneerd.
Opmerkingen
Als er een relatie is tussen de tabel die de resultaatkolom en tabellen bevat die de zoekkolommen bevatten, is het in de meeste gevallen efficiënter om de functie RELATED te gebruiken in plaats van LOOKUPVALUE en betere prestaties te bieden.
U kunt meerdere paren search_columnName en search_value opgeven.
De parameters search_value en alternateResult worden geëvalueerd voordat de functie de rijen van de zoektabel doorloopt.
Vermijd het gebruik van ISERROR- of IFERROR-functies om een fout vast te leggen die wordt geretourneerd door LOOKUPVALUE. Als sommige invoer in 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).
Voorbeeld 1
In dit voorbeeld wordt LOOKUPVALUE gebruikt om het gemiddelde tarief te doorzoeken voor de valuta die wordt gebruikt om te betalen voor de bestelling op de dag dat de bestelling is geplaatst:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Zowel de orderdatum als de valuta zijn vereist 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 uit de tabel Verkooporder te retourneren.
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
In dit geval is het echter efficiënter om de functie RELATED te gebruiken, omdat er een relatie is tussen de tabellen Verkooporder en Verkoop.
CHANNEL = RELATED('Sales Order'[Channel])