Fonction SI sur Power Query : Pourquoi et comment l’utiliser ?

-
3
 m de lecture
-

La fonction SI de Power Query pour Excel et Power BI permet de filtrer et de convertir les données en fixant des conditions, ou encore créer des colonnes calculées. Découvrez tout ce que vous devez savoir sur son fonctionnement, mais aussi des astuces pour exploiter tout son potentiel !

Sur Microsoft Excel et Power BI, l’outil Power Query propose de nombreuses fonctions de traitement de données. Elles peuvent être utilisées via l’éditeur de requêtes ou à l’aide du langage de formules M.

Ces différentes fonctions servent à transformer, nettoyer ou enrichir les données importées, afin de les rendre exploitables pour l’analyse ou la création de rapports. L’une des plus utilisées est la fonction SI.

Qu’est-ce que la fonction SI sur Power Query ?

Sur Power Query, la fonction SI permet de vérifier une condition et de renvoyer une valeur en fonction de cette condition.

On l’utilise notamment pour filtrer les données, pour créer des colonnes calculées, pour convertir des données ou encore pour traiter des valeurs manquantes.

La syntaxe de la fonction Si de Power Query est : « = if condition then valeur_si_vrai else valeur_si_faux ».

La condition peut être une expression logique, mais aussi une colonne de données ou une fonction. Si la condition est vraie, la fonction Si renvoie la valeur_si_vrai. Dans le cas contraire, elle renvoie la valeur_si_faux.

Son fonctionnement est similaire à la fonction Si d’Excel. Toutefois, la syntaxe est différente : elle doit être écrite avec une majuscule pour être reconnue par Power Query.

Par ailleurs, sur Excel, la condition est obligatoirement une expression logique. Notons enfin que les valeurs_si_vrai et valeur_si_faux peuvent être de n’importe quel type de données.

À quoi sert la fonction SI Power Query ?

La fonction SI peut être utilisée pour différentes tâches sur Power Query. Elle permet notamment de filtrer les données en fonction d’une condition.

Par exemple, il est possible de filtrer une table pour ne garder que les lignes où la colonne « Quantité » est supérieure à 100 avec la formule « = Table.SelectRows(table, each [Quantité] > 100) ».

Un autre cas d’usage est la création de colonnes calculées en fonction d’une condition. Par exemple, sur un tableau de prix, on peut créer une colonne « Montant HT » à partir d’une colonne « Montant TTC » en soustrayant la TVA avec la formule « = Table.AddColumn(table, « Montant HT », each if [TVA] = 20 then [Montant TTC] / 1.2 else [Montant TTC]) ».

Il est aussi possible de convertir des données en fonction d’une condition. Si l’on prend l’exemple d’une colonne de dates au format texte à convertir en colonne de dates, on peut utiliser la fonction Si « = Table.TransformColumns(table, {{« Date », each if Text.Length() = 10 then Date.FromText() else null, type date}}) ».

Enfin, un autre usage courant est le traitement de valeurs manquantes. Par exemple, pour remplacer les valeurs manquantes dans une colonne « Prix unitaire » par la valeur moyenne de cette colonne, on peut utiliser « = Table.ReplaceValue(table, null, each List.Average(Table.SelectRows(table, each [Prix unitaire] <> null)[Prix unitaire]), Replacer.ReplaceValue,{« Prix unitaire »}) ».

Quelques astuces pour la fonction SI : imbrication, combinaison…

Sur Power Query, la fonction SI est une fonction de transformation de données. Elle ne modifie donc pas directement la table d’origine, mais en crée une nouvelle avec les données transformées.

Il est toutefois possible d’appliquer la transformation à la table d’origine avec les fonctions Table.ReplaceValues ou Table.ReplaceErrors. Ceci permet de traiter les erreurs éventuelles dans les données en entrée.

Une autre astuce à connaître est la possibilité d’imbriquer la fonction Si pour tester plusieurs conditions en même temps. Par exemple, pour créer une colonne « Type de produit » en fonction de la colonne « Nom du produit », on peut utiliser « = Table.AddColumn(table, « Type de produit », each if Text.Contains([Nom du produit], « Fruit ») then « Fruit » else if Text.Contains([Nom du produit], « Légume ») then « Légume » else « Autre ») ».

Pour effectuer des transformations plus complexes, vous pouvez aussi combiner Si avec d’autres fonctions Power Query. Par exemple, pour créer une colonne « Prix unitaire TTC » en ajoutant la TVA à une colonne « Prix unitaire HT », il suffit d’utiliser la fonction Number.Round avec « = Table.AddColumn(table, « Prix unitaire TTC », each Number.Round(if [TVA] = 20 then [Prix unitaire HT] * 1.2 else [Prix unitaire HT], 2)) ».

Conclusion : la fonction SI, à connaître absolument sur Power Query

Simple et efficace, la fonction SI est couramment utilisée sur Power Query. Toutefois ce n’est que l’une des nombreuses subtilités de cet outil de transformation de données.

Afin de découvrir tous ses aspects, vous pouvez choisir DataScientest. En seulement 5 jours, notre formation Power BI permet d’apprendre à maîtriser Power Query, Dax, M, la DataViz, les DataFlows ou encore l’actualisation incrémentielle avec le logiciel de Microsoft.

À la fin du parcours, vous serez capable d’utiliser Power BI pour collecter, analyser les données et créer des tableaux de bord interactifs. Vous pourrez aussi passer l’examen Microsoft PL-300 pour obtenir la certification Power BI Analyst Associate.

Toutes nos formations s’effectuent à distance, et sont éligibles au CPF pour le financement. N’attendez plus, découvrez DataScientest et devenez expert de Power BI !

Vous savez tout sur la fonction SI de Power Query. Pour plus d’informations sur le même sujet, découvrez notre dossier sur Power Query et notre dossier sur les formules du langage M.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?