Partager via


LOOKUPVALUE

s’applique à :colonne calculéetable calculéeMeasurecalcul visuel

Retourne la value de la ligne qui répond aux critères all spécifiés par une or conditions de search plus.

Syntaxe

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

Paramètres

Terme Définition
result_columnName Nom d’une colonne existante qui contains l'value à retourner. Il ne peut pas s’agir d’une expression.
search_columnName Nom d’une colonne existante. Il peut se trouver dans la même table que result_columnName or dans une table related. Il ne peut pas s’agir d’une expression. Plusieurs paires de search_columnName and search_value peuvent être spécifiées.
search_value value à search dans search_columnName. Plusieurs paires de search_columnName and search_value peuvent être spécifiées.
alternateResult (Facultatif) La value retournée lorsque le contexte de result_columnName a été filtré jusqu’à zéro or plusieurs valuedistincts. If not spécifié, la fonction retourne BLANK lorsque result_columnName est filtrée jusqu’à zéro valuesor un error lorsqu’il existe plusieurs value distincts dans le contexte de result_columnName.

Retourner value

Le value de result_columnName à la ligne où all paires de search_columnNameandsearch_value ont une correspondance exact.

If il n’existe pas de correspondance qui satisfait all l'searchvalues, BLANKoralternateResult (if spécifié) est retournée. En d’autres termes, la fonction ne retourne pas de recherche valueif seulement une partie des critères correspondant.

If plusieurs lignes correspondent à la searchvaluesand l'values dans la result_columnName pour ces lignes sont identiques, puis que value est retournée. Toutefois, ifresult_columnName retourne des valuesdifférentes, un errororalternateResult (if spécifié) est retourné.

Remarques

  • If il existe une relation entre la table qui contains la colonne de résultat and tables qui contiennent les colonnes search, dans la plupart des cas, l’utilisation de la fonction RELATED au lieu de LOOKUPVALUE est plus efficace and offre de meilleures performances.

  • Plusieurs paires de search_columnNameandsearch_value peuvent être spécifiées.

  • Les paramètres search_valueandalternateResult sont évalués avant que la fonction itère dans les lignes de la table search.

  • Évitez d’utiliser des fonctions ISERRORorIFERROR pour capturer une error retournée par LOOKUPVALUE. If certaines entrées de la fonction entraînent un error lorsqu’une seule sortie value ne peut pas être déterminée, en fournissant un paramètre alternateResult est le moyen le plus fiable and le plus performant de gérer le error.

  • Le paramètre alternateResult retourne une errorif spécifiée dans une colonne calculée Power Pivot.

  • Cette fonction est not prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées or règles de sécurité au niveau des lignes (RLS).

Exemple 1

Dans cet exemple, LOOKUPVALUE est utilisé pour searchAverageRate pour le currency utilisé pour payer la commande sur le day la commande a été passée :

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

Les deux DateandCurrency de commande doivent find l'AverageRate pour la dateandcurrencycorrecte. OrderDateKey and CurrencyKey sont les clés utilisées pour rechercher la AverageRate dans la table CurrencyRate.

Vous pouvez utiliser l'Rate Exchange pour calculate le montant des ventes dans currency local avec :

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

Exemple 2

Dans cet exemple, la colonne calculée suivante définie dans la table Sales utilise la fonction pour retourner le canal à partir de la table Sales Order.

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

Toutefois, dans ce cas, étant donné qu’il existe une relation entre les tables Sales OrderandSales, il est plus efficace d’utiliser la fonction RELATED.

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

fonction RELATED (DAX)Fonctions d’information