Accéder au contenu principal

Guide complet de LOOKUPVALUE en DAX

Maîtrisez la fonction LOOKUPVALUE dans Power BI avec des exemples simples et des combinaisons avancées avec d’autres fonctions DAX.
Actualisé 19 sept. 2026  · 9 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

LOOKUPVALUE est une fonction DAX pratique pour rechercher et récupérer des valeurs dans d’autres tables.

Sans remplacer de bonnes pratiques de modélisation de données dans vos rapports Power BI, LOOKUPVALUE offre une grande souplesse pour écrire des expressions complexes avec plusieurs conditions, surtout si vous souhaitez combiner LOOKUPVALUE avec d’autres fonctions DAX.

Dans ce tutoriel, nous allons couvrir les bases de la fonction LOOKUPVALUE : son fonctionnement, comment l’utiliser (en particulier en combinaison avec d’autres fonctions DAX), ainsi que des considérations de performance et des bonnes pratiques à appliquer dans vos rapports Power BI.

Dans Power BI, LOOKUPVALUE est très similaire à VLOOKUP dans Microsoft Excel. Cependant, il est préférable de vous familiariser avec DAX et Power BI avant d’aborder LOOKUPVALUE. Notre parcours de compétences Power BI fundamentals vous mettra rapidement à niveau, et notre DAX cheat sheet est une excellente référence à garder sous la main lorsque vous travaillez avec les fonctions DAX.

Power BI DAX Cheat Sheet

Les bases de LOOKUPVALUE

Avec la fonction LOOKUPVALUE, vous pouvez récupérer une valeur unique d’une colonne dans une autre table en fonction d’une ou plusieurs conditions de recherche.

Voici la syntaxe standard :

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

Si vous débutez encore avec DAX et sa syntaxe, consultez notre cours Introduction to DAX ou parcourez rapidement notre tutoriel DAX pour grands débutants. Vous pouvez aussi approfondir vos connaissances DAX avec notre cours Intermediate DAX.

Passons en revue les paramètres de LOOKUPVALUE plus en détail :

  • result_column : la colonne à récupérer dans la table cible.
  • search_column1 : la colonne de la table cible qui contient le critère à faire correspondre.
  • search_value1 : la valeur à rechercher dans search_column1. Il peut s’agir d’une valeur fixe (du texte, par exemple), du résultat d’une expression (comme min ou max), ou d’une colonne de la table source sur laquelle LOOKUPVALUE doit effectuer la correspondance.
  • [search_column2, search_value2, …] : paires supplémentaires facultatives de colonnes et de valeurs de recherche. Vous pouvez en spécifier plusieurs pour créer des conditions plus complexes.
  • [alternateResult] : le résultat par défaut ou alternatif. Si LOOKUPVALUE ne trouve pas de correspondance, cette valeur sera renvoyée.

Chaque fois que LOOKUPVALUE effectue une recherche dans la table cible, elle ne doit renvoyer qu’une seule correspondance. S’il existe plusieurs correspondances possibles, vous devrez définir des paires de recherche supplémentaires jusqu’à ce que LOOKUPVALUE trouve une correspondance unique.

Pour plus de clarté, nous en discuterons avec un exemple dans la section suivante.

Exemples simples de LOOKUPVALUE

Utilisation de base

Supposons que vous ayez une table des produits avec les colonnes ProductID et ProductName. Vous souhaitez trouver le nom du produit dont l’ID est 101.

Product_Name = LOOKUPVALUE(Products[ProductName], Products[ProductID], 101)

Conditions de recherche multiples

Dans ce cas, imaginez une table Sales avec les colonnes ProductID, Region et Revenue. Vous voulez trouver le chiffre d’affaires d’un produit donné (ID 101) dans une certaine région (East).

Product_Revenue = LOOKUPVALUE(Sales[Revenue], Sales[ProductID], 101, Sales[Region], "East")

Gérer les valeurs vides

Lorsque les conditions de recherche ne renvoient aucune correspondance, LOOKUPVALUE renvoie une valeur vide.

Voici deux méthodes pour gérer ces valeurs vides :

  • Utiliser le paramètre de résultat alternatif de LOOKUPVALUE.
  • Utiliser la fonction COALESCE pour spécifier un résultat alternatif si LOOKUPVALUE renvoie une valeur vide.

Méthode 1 : résultat alternatif

Vous pouvez indiquer une valeur par défaut ou un résultat alternatif dans la fonction LOOKUPVALUE. Il s’agit d’un paramètre facultatif placé tout à la fin de l’expression LOOKUPVALUE.

Product_Name = LOOKUPVALUE(Products[ProductName], Products[ProductID], 101, "Not Found")

Méthode 2 : COALESCE

Deuxième option : utiliser la fonction COALESCE, qui fonctionne quasiment de la même manière que la spécification d’un résultat alternatif dans LOOKUPVALUE.

Cependant, selon votre cas d’usage et votre jeu de données, COALESCE peut être plus performant. Si la rapidité et les performances sont importantes pour votre rapport Power BI, cela vaut la peine d’examiner COALESCE.

Commission Rate = 
COALESCE( 
     LOOKUPVALUE(
          'CommissionRates'[Rate],
          'CommissionRates'[SalespersonID], SELECTEDVALUE('Sales'[SalespersonID])
     ), 
     0.05 
)

Définir des relations entre vos tables est toujours une bonne pratique de modélisation. C’est plus rapide que d’utiliser la fonction DAX LOOKUPVALUE et cela rend votre modèle sémantique plus facile à comprendre, aujourd’hui comme demain.

Lorsque vous créez des relations entre vos tables, vous pouvez utiliser la fonction RELATED. Dans la plupart des cas, RELATED est plus simple et plus direct que LOOKUPVALUE.

La fonction RELATED est idéale lorsque vous devez récupérer une valeur depuis une autre table en relation directe avec votre table source.

Par exemple, si vous souhaitez ajouter le nom du client à la table des ventes et qu’il existe une relation directe entre la table Sales et la table Customers sur CustomerID, vous pouvez utiliser :

Customer Name = RELATED(Customers[CustomerName])

Cependant, `LOOKUPVALUE` est plus flexible que `RELATED` et s’utilise de préférence lorsque vous devez effectuer des recherches sans relation directe existante dans votre modèle, ou rechercher des valeurs selon des critères multiples ou complexes. C’est très polyvalent, mais évitez d’en abuser car cela peut avoir un impact sur les performances.

Combiner LOOKUPVALUE avec d’autres fonctions DAX

Nous avons déjà vu comment combiner LOOKUPVALUE avec COALESCE pour fournir un résultat alternatif lorsqu’aucune correspondance n’est trouvée.

D’autres fonctions DAX se marient bien avec LOOKUPVALUE, comme CALCULATE et SWITCH.

Nous allons passer en revue des exemples dans cette section.

LOOKUPVALUE & CALCULATE

Combiner LOOKUPVALUE avec CALCULATE est utile lorsque vous devez récupérer des valeurs d’une autre table selon un contexte de calcul ou de filtre qui n’est pas directement accessible via une simple relation ou une recherche basique.

On l’utilise souvent pour appliquer des filtres ou modifier la granularité des calculs. En le combinant avec LOOKUPVALUE, vous pouvez ajuster dynamiquement les critères de recherche selon les résultats de calculs.

Voici un exemple : supposez que vous disposez d’une liste de produits et de leurs objectifs de vente pour une année donnée dans une table. Pour un ProductID donné, vous souhaitez récupérer son objectif de vente pour l’année en cours.

Voyons comment faire en combinant les fonctions CALCULATE et LOOKUPVALUE.

Product Sales Target = 
VAR SpecificProductID = 123
VAR CurrentYear = YEAR(TODAY())
RETURN
    CALCULATE(
        LOOKUPVALUE(
             SalesTargets[SalesTarget], 
             SalesTargets[ProductID], 
             SpecificProductID, 
             SalesTargets[Year], 
             CurrentYear
        ),
        ALL(SalesTargets)
    )

LOOKUPVALUE & SWITCH

Associer LOOKUPVALUE à SWITCH est pertinent lorsque vous devez rechercher dynamiquement des valeurs dans une autre table et renvoyer des résultats différents en fonction de plusieurs cas possibles.

Si vous ne connaissez pas la fonction SWITCH, nous avons un tutoriel qui vous guide pas à pas.

Voici un exemple : vous avez un jeu de données de ventes et une table séparée des taux de commission. Le taux de commission d’un collaborateur dépend de son palier de ventes, qui n’est pas stocké directement mais peut être calculé à partir du montant total des ventes.

Vous souhaitez créer une colonne calculée dans la table Sales indiquant le taux de commission de chaque vente selon le palier.

Commission Rate = 
VAR SalesAmount = Sales[TotalSalesAmount]
VAR SalesTier = 
    SWITCH(
        TRUE(),
        SalesAmount <= 500, "Low",
        SalesAmount <= 2000, "Medium",
        "High"
    )
RETURN 
    LOOKUPVALUE(
        CommissionRates[CommissionRate],
        CommissionRates[SalesTier], 
        SalesTier
    )

Dans cette expression DAX, nous utilisons SWITCH pour déterminer le palier de ventes, puis nous utilisons ce résultat dans LOOKUPVALUE pour récupérer le taux de commission correspondant à ce palier.

Performances : points d’attention et bonnes pratiques

1. Utiliser des relations lorsque c’est possible

Il est préférable d’utiliser des relations directes entre les tables dès que possible. Les relations sont optimisées pour les performances dans Power BI, et des fonctions comme RELATED sont souvent bien plus efficaces que LOOKUPVALUE.

Cette approche tire aussi parti des optimisations internes de Power BI, essentiel si vous souhaitez réduire les temps de chargement de vos rapports.

2. Limiter l’usage dans les colonnes calculées

Bien que LOOKUPVALUE puisse être utilisée dans des colonnes calculées, mieux vaut éviter d’en abuser. Les colonnes calculées sont évaluées lors de l’actualisation des données et peuvent ralentir le processus, en particulier sur de grands jeux de données.

Envisagez plutôt d’utiliser LOOKUPVALUE dans des mesures, où les calculs sont effectués à l’exécution des requêtes et peuvent bénéficier d’optimisations de requête.

3. Gérer soigneusement les résultats vides

LOOKUPVALUE renvoie une valeur vide si aucune correspondance n’est trouvée. Comme évoqué plus haut, il est important de choisir la bonne méthode pour gérer cela dans vos rapports. Vous pouvez, par exemple, utiliser une fonction comme COALESCE ou le paramètre de résultat alternatif de LOOKUPVALUE pour fournir des valeurs par défaut lorsque LOOKUPVALUE renvoie vide.

4. Types de données et sensibilité à la casse

Assurez-vous que la valeur recherchée et la colonne interrogée ont des types de données cohérents, et soyez attentif à la sensibilité à la casse. Des incohérences de type ou de casse peuvent entraîner des résultats inattendus ou des erreurs avec LOOKUPVALUE.

Conclusion

En résumé, LOOKUPVALUE vous offre bien plus d’options pour rechercher et récupérer des valeurs dans d’autres tables. Elle est particulièrement puissante lorsqu’elle est combinée avec d’autres fonctions DAX. Cependant, elle ne remplace pas de bonnes pratiques de modélisation : commencez par définir des relations entre les tables de vos rapports Power BI chaque fois que possible.

Si vous envisagez une carrière de Power BI developer, consultez notre guide pas à pas pour devenir Power BI developer. Poursuivez votre apprentissage Power BI en explorant notre parcours carrière Data Analyst in Power BI, qui vous apprendra tout ce qu’il faut savoir pour utiliser Power BI en pratique.


Joleen Bothma's photo
Author
Joleen Bothma
LinkedIn
Sujets
Power BI

Poursuivez votre parcours Power BI dès aujourd’hui !

Cours

Introduction à DAX dans Power BI

3 h
183.6K
Boostez Power BI en maîtrisant les expressions d’analyse de données (DAX) : colonnes calculées, tableaux et mesures clés.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow