LOOKUPVALUE
s’applique à :colonne calculéetable calculéemesurecalcul visuel
Retourne la valeur de la ligne qui répond à tous les critères spécifiés par une ou plusieurs conditions de recherche.
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 contient la valeur à 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 ou dans une table associée. Il ne peut pas s’agir d’une expression. Plusieurs paires de search_columnName et de search_value peuvent être spécifiées. |
search_value |
Valeur à rechercher dans search_columnName. Plusieurs paires de search_columnName et de search_value peuvent être spécifiées. |
alternateResult |
(Facultatif) Valeur retournée lorsque le contexte de result_columnName a été filtré jusqu’à zéro ou plusieurs valeurs distinctes. Si elle n’est pas spécifiée, la fonction retourne BLANK lorsque result_columnName est filtrée jusqu’à zéro valeur ou une erreur lorsqu’il existe plusieurs valeurs distinctes dans le contexte de result_columnName. |
Valeur de retour
La valeur de result_columnName
à la ligne où toutes les paires de search_columnName
et search_value
ont une correspondance exacte.
S’il n’existe pas de correspondance qui satisfait à toutes les valeurs de recherche, BLANK ou alternateResult
(si spécifié) est retourné. En d’autres termes, la fonction ne retourne pas de valeur de recherche si seuls certains critères correspondent.
Si plusieurs lignes correspondent aux valeurs de recherche et aux valeurs de la result_columnName
pour ces lignes sont identiques, cette valeur est retournée. Toutefois, si result_columnName
retourne des valeurs différentes, une erreur ou une alternateResult
(si spécifiée) est retournée.
Remarques
S’il existe une relation entre la table qui contient la colonne de résultat et les tables qui contiennent les colonnes de recherche, dans la plupart des cas, l’utilisation de la fonction RELATED au lieu de LOOKUPVALUE est plus efficace et offre de meilleures performances.
Plusieurs paires de
search_columnName
et desearch_value
peuvent être spécifiées.Les paramètres
search_value
etalternateResult
sont évalués avant que la fonction effectue une itération dans les lignes de la table de recherche.Évitez d’utiliser des fonctions ISERROR ou IFERROR pour capturer une erreur retournée par LOOKUPVALUE. Si certaines entrées de la fonction entraînent une erreur lorsqu’une valeur de sortie unique ne peut pas être déterminée, la fourniture d’un paramètre
alternateResult
est la méthode la plus fiable et la plus performante pour gérer l’erreur.Le paramètre
alternateResult
retourne une erreur si elle est spécifiée dans une colonne calculée Power Pivot.Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).
Exemple 1
Dans cet exemple, LOOKUPVALUE est utilisé pour rechercher le taux moyen de la devise utilisée pour payer la commande le jour où la commande a été passée :
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
La date de commande et la devise sont requises pour trouver le taux moyen pour la date et la devise correctes. OrderDateKey et CurrencyKey sont les clés utilisées pour rechercher le taux moyen dans la table Taux monétaire.
Vous pouvez utiliser le taux de change pour calculer le montant des ventes en devise locale 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 LOOKUPVALUE pour retourner des valeurs de 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 order et Sales, il est plus efficace d’utiliser la fonction RELATED.
CHANNEL = RELATED('Sales Order'[Channel])
Contenu connexe
fonction RELATED (DAX)Fonctions d’information