Cet article est le deuxième d’une série sur l’IA et Power BI. Dans le premier article, j’ai présenté le format PBIP : un rapport Power BI enregistré en fichiers texte, dans laquelle l’IA peut lire et écrire. Cette fois, on passe à la pratique. Dans la démonstration, j’utilise Claude sous licence Pro mais, j’ai refait l’exercice avec Copilot Chat, déjà inclus dans l’abonnement Microsoft 365.
Un détail pratique : je n’ai rien eu à installer pour ce test. Claude Code s’est servi de ce qui se trouvait déjà sur mon poste : PowerShell, Node.js et les bibliothèques fournies avec Power BI Desktop. Il a constaté que Python n’y était pas, et s’en est passé.
Vous préférez la version vidéo ? La voici!
Le point de départ : des fichiers Excel
Mon jeu de données est fictif. Il est tiré de notre formation Power BI niveau 2 et représente un détaillant de meubles : 68 magasins au Canada, 17 départements. Les fichiers sont répartis dans trois sous-dossiers.

| Dossier | Contenu | Piège pour l’automatisation |
|---|---|---|
| Ventes | 7 classeurs, de janvier à juillet 2024, près de 350 000 transactions | Aucun montant de vente : seulement les unités, le produit et le rabais |
| Budget | 68 classeurs, un par magasin | Présenté en tableau croisé, avec les colonnes Budget, An dernier et Diff pour chaque mois, sans l’année, et avec un total annuel erroné |
| Dimensions | Bannières, catégories, départements, magasins, produits | Les liens entre les tables sont à deviner à partir des noms de colonnes |
Autrement dit, ce n’est pas un jeu propre préparé pour une démo. C’est le genre de fichiers qu’un analyste reçoit vraiment, et qu’il doit d’abord comprendre avant de construire quoi que ce soit.
L’invite : un cahier des charges, pas une question
J’ai ouvert Claude Code dans le dossier du projet et lui ai donné cette invite (prompt), telle quelle :
Dans ce dossier, le sous-dossier “Source de donnees” contient les données
d’une entreprise de commerce de détail, en fichiers Excel répartis dans
trois sous-dossiers :* Ventes : un fichier par mois
* Budget : un fichier par numéro
* Dimensions : les tables de référence (bannières, catégories,
départements, magasins, produits)Crée un projet Power BI complet au format .pbip (modèle sémantique en TMDL,
rapport en PBIR) pour faire le suivi des ventes réelles contre le budget.
Avant de construire quoi que ce soit, explore les fichiers pour comprendre
leur structure, leur contenu et les liens entre eux.Données :
* Charge chaque série de fichiers de façon à ce qu’un nouveau fichier
ajouté au dossier soit pris en compte à l’actualisationModèle :
* Un schéma en étoile avec une table de dates et les dimensions nécessaires
* Des mesures DAX pour les ventes réelles, le budget, l’écart en $, l’écart
en % et le cumul depuis le début de l’annéeRapport :
* Une page de synthèse avec des cartes pour les indicateurs clés, un
graphique réel contre budget par mois et des segments pertinents
* Une page de détail avec une matrice des écarts par magasin et par
départementLe projet doit s’ouvrir dans Power BI Desktop sans erreur. À la fin,
résume ce que tu as construit et liste les hypothèses que tu as faites.
Cette invite n’a rien de magique. Elle reprend les réponses aux questions qu’on doit se poser en début de projet. Ces choix sont ensuite soumis dans un cahier des charges pour un analyste junior ou un consultant externe. Quatre choix font la différence :
- Explorer avant de construire. L’IA doit d’abord ouvrir les fichiers, comme un humain le ferait. C’est ce qui lui permet de repérer les pièges décrits plus haut.
- Nommer les formats. « .pbip », « TMDL », « PBIR » : ces mots évitent qu’elle invente sa propre structure de fichiers.
- Décrire le résultat, pas les clics. On dit quelles mesures et quelles pages on veut, en vocabulaire de métier : schéma en étoile, cumul annuel, matrice des écarts.
- Exiger la liste des hypothèses. C’est la clause la plus importante. Elle force l’IA à dire ce qu’elle a deviné, plutôt que de le cacher dans le code.
Remarquez que l’invite suppose de savoir ce qu’est un schéma en étoile ou une mesure de cumul annuel. Plus vous connaissez Power BI, plus vous serez en mesure de construire une invite de qualité.
Comment l’IA a travaillé
Claude Code ne s’est pas lancé tête première. Le journal de sa session montre une démarche d’analyste, en quatre temps.
- Explorer. Il a ouvert chaque fichier : 68 magasins, 17 départements, 114 produits, 346 610 lignes de ventes. Au passage, il a repéré que le total annuel imprimé dans les fichiers de budget est faux. Pour le magasin 103, ce total indique environ 78 millions de dollars, alors que la somme des mois donne 14,75 millions. Il a donc tout recalculé plutôt que de se fier à une donnée erronée.
- Contourner les obstacles. Sans Python sur le poste, il a lu les classeurs Excel avec PowerShell. Il a ensuite trouvé et corrigé un bogue dans son propre lecteur, puis réparé des accents corrompus dans un de ses scripts.
- S’inspirer d’un rapport existant. Un autre projet PBIP se trouvait déjà dans le dossier. Il ne l’a pas modifié, mais il a calqué la syntaxe de ses visuels pour écrire les siens.
- Vérifier son travail. Il a validé le modèle avec les bibliothèques de Power BI Desktop, puis contrôlé que chaque champ utilisé par un visuel existe bien. Il a ensuite ouvert le projet dans Desktop, actualisé les données et comparé les chiffres à ses propres calculs. Enfin, il a fait des captures d’écran et corrigé trois détails visuels avant de rendre la main.
Le point 3 mérite d’être retenu. Avec un exemple de rapport valide sous la main, l’IA écrit des visuels plus fiables. Dans un dossier vide, le résultat aurait pu demander plus d’allers-retours. Si vous n’avez pas de rapport existant, vous pourriez fournir une maquette en pdf de ce que vous souhaitez obtenir pour diriger l’IA exactement vers ce que vous voulez.
Ce que l’IA a construit : le modèle
Claude Code a livré un schéma en étoile classique : deux tables de faits, Ventes et Budget, reliées à des dimensions communes. C’est le modèle qu’on enseigne dans nos formations.

Un modèle qui fonctionne, mais pas tout à fait comme je veux
Dans ce modèle, la table Département filtre directement les ventes. Pour y arriver, l’IA a ajouté le numéro de département à chaque ligne de vente, à partir du produit vendu. Le résultat est juste, mais ce n’est pas la structure que je recommanderais ici. Un produit appartient à un département : c’est donc la table Produit qui devrait faire le lien, selon le chemin Département → Produit → Ventes.
Du côté du budget, la relation directe avec Département reste nécessaire, puisque le budget n’existe pas par produit.
Ce n’est pas une erreur au sens strict : les chiffres sont bons. Mais c’est le genre de choix de modélisation que l’IA fait sans le signaler, et qu’il faut savoir repérer. J’y reviendrai en détail dans la partie 4 de cette série.
Quelques choix montrent que l’IA a vraiment lu les fichiers :
- Les dossiers sont chargés en entier. Les requêtes Power Query lisent tous les classeurs des dossiers Ventes et Budget. Un nouveau mois déposé dans le dossier sera pris en compte à l’actualisation, comme demandé.
- Le budget en tableau croisé est remis à plat. La requête garde seulement les colonnes Budget des 12 mois, ignore les colonnes An dernier et Diff, et laisse tomber les lignes de total pour que le modèle les recalcule.
- Les ventes sont valorisées. Faute de montant dans les fichiers, l’IA calcule les ventes avec le prix unitaire de la table Produit, moins le rabais.
- Le chemin du dossier source est un paramètre. Pour déplacer les données, on change une seule valeur.
Côté DAX, les mesures sont regroupées dans une table de mesures, classées en dossiers et chacune accompagnée d’une description.

Les principales :
| Mesure | Ce qu’elle calcule |
|---|---|
| Ventes réelles | Somme des ventes nettes de rabais |
| Budget | Budget de la période filtrée, y compris les mois sans ventes |
| Budget à date | Budget limité aux mois où il y a des ventes réelles |
| Écart $ et Écart % | Ventes réelles contre budget à date |
| Cumuls annuels | Ventes, budget et écarts depuis le 1er janvier |
| % du budget annuel atteint | Ventes cumulées sur le budget des 12 mois |
La mesure Budget à date est une initiative de l’IA, et une bonne. Sans elle, un écart calculé en juillet comparerait sept mois de ventes à douze mois de budget.
Ce que l’IA a construit : le rapport
Le rapport compte les deux pages demandées, avec un thème de couleurs sobre créé pour l’occasion. Je les ai ouvertes dans Power BI Desktop telles quelles, sans aucune retouche.
Page 1 — Synthèse

- Six segments : année, mois, bannière, province, catégorie de magasin et département
- Six cartes : ventes réelles, budget à date, écart $, écart %, ventes cumulées et écart % cumulé, avec les écarts négatifs en rouge
- Un graphique combiné réel contre budget par mois, avec l’écart % en ligne sur un second axe
- Un graphique des cumuls depuis le début de l’année, réel contre budget
Un détail que je n’avais pas demandé : un sous-titre dynamique en haut à droite. Il précise jusqu’à quelle date vont les ventes réelles, et rappelle que les écarts portent sur le budget des mêmes mois.
Page 2 — Détail des écarts

- Une matrice par magasin, qu’on explose pour voir les départements, avec les écarts en couleur conditionnelle
- Un graphique à barres de l’écart $ par département, du plus défavorable au plus favorable
- Les mêmes segments que la page de synthèse
Le rapport n’est pas parfait sur le plan visuel : la dernière colonne de la matrice est coupée, et certains noms de départements sont tronqués. Mais c’est un excellent point de départ!
Les hypothèses : ce que l’IA a dû deviner
Pour les informations manquantes dans les données ou dans l’invite, l’IA a fait des choix. À la fin, comme je l’ai demandé, elle les a listés. Les voici, avec ce qu’il faut confirmer pour chacun :
| Hypothèse de l’IA | Ce qu’il faut confirmer |
|---|---|
| Montant d’une vente = unités × prix unitaire × (1 − rabais) | Le prix vient de la table Produit, soit le prix actuel. Si les prix ont changé en cours d’année, les ventes passées sont mal valorisées |
| Le budget vise l’année 2024, réglée par un paramètre | Les fichiers n’indiquent pas l’année. Une mauvaise année fausse tous les écarts |
| Les écarts se comparent au budget à date | Chaque fichier de ventes est supposé couvrir un mois complet |
| Le budget est daté du 1er du mois | Aucune analyse n’est possible au niveau du jour |
| Un filtre sur Produit n’agit que sur les ventes | Filtrer un produit compare ses ventes au budget de tous les produits : l’écart perd son sens |
| Seuls les montants et les unités budgétés sont chargés | L’an dernier, les coûts et les marges sont laissés de côté |
| Les retours sont soustraits des ventes | Une ligne en double en juillet, même facture et même produit, est conservée telle quelle |
| Les données de référence sont reprises telles quelles | Provinces mélangeant anglais et français, villes sans accent comme « Montreal » |
L’IA a aussi signalé un point de sa propre initiative. Le magasin 624, à Pickering, est à environ −90 % de son budget dans plusieurs départements, « ce qui ressemble davantage à un problème de données qu’à de vraies contre-performances ».
Aucune de ces hypothèses n’est déraisonnable. Mais chacune peut fausser le rapport, et seule une personne qui connaît l’entreprise peut trancher.
Et avec Copilot?
Claude Code demande un abonnement Claude payant, Pro ou supérieur. Beaucoup parmi vous ont plutôt Copilot Chat, déjà inclus dans votre abonnement Microsoft 365. J’ai donc fait faire la même tâche à Copilot. Résultat : le fichier .pbip a été construit par Copilot mais le travail d’exécution a été un peu plus demandant. J’ai quand même réussi à faire produire un rapport complet en moins de 5 minutes.
| Claude Code | Copilot Chat | |
|---|---|---|
| Licence | Abonnement Claude payant | Inclus dans Microsoft 365 |
| Accès aux fichiers | Lit directement le dossier sur le poste | Exemples de fichiers sources déposés dans la conversation |
| Fichiers analysés | 7 ventes, 68 budgets, 5 dimensions | 2 ventes, 2 budgets, 5 dimensions |
| Vérification | Ouvre Desktop, actualise, compare les chiffres aux fichiers | Aucune : il n’a pas accès à Power BI Desktop |
| Ouverture dans Power BI Desktop | Sans erreur | Échec : « Missing required artifact ‘model.bim’ » Quelques étapes de débogage requises. |
| Modèle | Étoile : 2 faits, 4 dimensions | Flocon : bannière, catégorie et département en tables séparées |
| Mesures | Réel, budget, budget à date, écarts, cumuls annuels | Ventes, coûts, marges, budget, écarts, sans cumul ni budget à date |
| Rapport | 2 pages complètes | 1 page vide : les visuels « doivent être disposés dans Power BI Desktop » |
| Chemin du dossier source | Le bon | Deviné, à corriger à la main |
Prudence avant de conclure : ce n’était pas tout à fait le même test. Copilot a reçu une demande plus courte que l’invite fournie à Claude Code, et seulement une partie des fichiers, parce qu’il n’accepte pas de .zip.
Utiliser PBIP sans licence supplémentaire : mode d’emploi
Le chemin gratuit existe, à condition de savoir ce qu’on obtient : un modèle à vérifier et un rapport à construire. Pour en tirer le maximum :
- Donnez à Copilot une invite complète, comme celle de cet article, plutôt qu’une demande générale.
- Déposez au moins un fichier de chaque type et décrivez les autres : combien il y en a, comment ils sont nommés.
- Exigez la liste des hypothèses et une explication de la façon dont chaque fichier est lu.
- Demandez les visuels page par page. S’il ne les livre pas, construisez-les dans Power BI Desktop : le modèle et les mesures déjà prêts vous font gagner du temps.
- Faites vous-même la vérification que Claude Code a faite seul. Ouvrez le projet; s’il plante, vérifiez d’abord la version déclarée dans definition.pbism. Actualisez, puis comparez chaque mesure à un total connu des fichiers source.
Le rapport s’ouvre sans erreur. Est-il juste pour autant?
Tout a fonctionné du premier coup. Et l’IA ne s’est pas contentée d’un projet qui s’ouvre : elle a comparé les chiffres du modèle à ceux qu’elle avait calculés directement dans les fichiers. Ils concordent. Mais cette vérification prouve une seule chose : le rapport lit fidèlement les fichiers. Elle ne dit pas si les fichiers sont justes, ni si les hypothèses le sont.
Avant de présenter ce rapport à un comité de direction, il reste un travail que l’IA ne peut pas faire seule :
- Confirmer ou corriger chacune des hypothèses ci-dessus
- Rapprocher quelques totaux avec les fichiers source, à la main
- Lire les mesures DAX et s’assurer qu’elles calculent ce qu’on croit
- Expliquer les résultats qui détonnent, comme ce mois de mars
C’est là que la connaissance de Power BI redevient indispensable. Notre règle ne change pas : on ne livre pas un modèle qu’on ne pourrait pas expliquer soi-même.
Dans la partie 3, je demande à l’IA de modifier un rapport existant. Puis, dans la partie 4, je ferai le bilan des forces et des limites de l’approche, et je vais valider ce rapport-ci étape par étape : ce qu’il faut vérifier, comment, et ce que j’ai trouvé.
Formation complémentaire
Pour comprendre et maîtriser les nouvelles possibilités offertes par l’intelligence artificielle dans Power BI, suivez la formation Applications d’Intelligence artificielle pour Power BI avec Copilot.
La mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.







