Formation - Conception d'un rapport Power BI

📆 Date du jour :

🎯 Objectifs de la Formation

  • Savoir connecter et transformer des données dans Power BI
  • Apprendre à créer et personnaliser des tableaux de bord interactifs
  • Comprendre les bonnes pratiques pour concevoir un rapport efficace

⏱️ Durée Adaptable

  • 30 minutes: Vue d'ensemble rapide
  • 2 heures: Formation essentielle
  • 3 heures: Formation complète avec ateliers

📚 Programme de Formation

1. Introduction à Power BI
2. Architecture et Composants
Quiz #1
3. Connexion aux Données
4. Power Query et Transformation
5. Modélisation des Données
6. DAX Mesures et autres Calculs
Quiz #2
7. Création de Visualisations
8. Design et UX
Quiz #3
9. Copilot AI dans Power BI
10. Performance et Optimisation
11. Sécurité et Gouvernance
Conclusion et Synthèse
Atelier Pratique

1. Introduction à Power BI

Qu'est-ce que Power BI?

L' Intelligence d'affaires (BI) désigne l’ensemble des méthodes et outils qui permettent aux organisations de transformer leurs données en informations exploitables. Elle sert à analyser, visualiser et partager des indicateurs clés afin d’éclairer la prise de décision. Parmi ces outils, Power BI se distingue comme une solution de choix bien établie proposée par Microsoft. Il offre la possibilité de :

Écosystème Power BI

Power BI Desktop

Application Windows gratuite pour créer des rapports

Power BI Service

Plateforme cloud pour publier et partager avec les écoles

Power BI Mobile

Applications mobiles pour directeurs et enseignants

Power BI Report Server

Solution on-premise pour données sensibles

Power BI Embedded

Pour des hébergements dans des applications ou site web personnalisé

Licences et Coûts (approximatifs)

💰 Options de Licence

  • Power BI Desktop : Gratuit (création locale)
  • Power BI Pro : ~13$ CAD/utilisateur/mois (Rabais additionnel pour des packages)
  • Power BI Premium : ~7000$ CAD/mois (organisation)
  • Fabric (nouveau) : Variable selon usage

🎯 Avantages par Type

  • Pro : Partage, collaboration, actualisation cloud
  • Premium : Capacités avancées, IA, gros volumes
  • Gouvernement : Versions spécialisées secteur public

💡 Point Clé

Power BI permet de centraliser les données de multiples systèmes (résultats scolaires, présences, comportements) pour une vue 360° de chaque élève.

2. Architecture et Composants

Le parcours de la donnée : de la saisie brute à l'intelligence d'affaires.

1. Systèmes Ops

Saisie des transactions quotidiennes (GPI, Jade)

2. Entrepôt

Base de données relationnelle (SQL, Snowflake, Google BigQuery)

3. ETL

Extraction, nettoyage et transformation

4. Modèle

Structure des relations entre les tables (Star vs Snowflake)

5. Calcul

Définition des mesures et KPIs (DAX)

6. Visuel

Création des graphiques interactifs

7. Service

Portail de diffusion et partage sécurisée

Quiz #1 - Vérifiez vos connaissances

Question 1: Quelle composante est responsable du partage et de la collaboration dans Power BI?
A) Power Query
B) Power BI Service
C) SQL Server
D) Excel
Question 2: Quelle version de Power BI permet l'hébergement des rapports sur site (on-premise) ?
A) Power BI Desktop
B) Power BI Service
C) Power BI Report Server
D) Power BI Embedded

💡 Rappel

Ces concepts sont fondamentaux pour bien structurer vos projets Power BI. N'hésitez pas à revenir sur les slides précédentes si nécessaire!

3. Connexion aux Données

Typologie des Sources de Données

Power BI offre plus de 200 connecteurs natifs classés par type technique.

📄 Fichiers & Dossiers

  • Excel / CSV : Exports manuels ou automatisés
  • SharePoint Folder : Consolidation de plusieurs fichiers
  • PDF / XML / JSON : Données semi-structurées

🗄️ Bases de Données (On-Prem & Cloud)

  • Relationnelles : SQL Server, Oracle, MySQL
  • Entrepôts (DWH) : Azure Synapse, Snowflake, Google BigQuery
  • Cubes : SSAS (Analysis Services)

☁️ Services en Ligne (SaaS)

  • Écosystème MS : Listes SharePoint, Teams, Dynamics 365
  • Tiers : Google Analytics, Salesforce
  • Power Platform : Dataverse, Dataflows

🌐 Web & APIs

  • Web : Scraping de pages HTML (Tableaux)
  • API REST : Connexion aux systèmes modernes
  • OData Feed : Protocoles standardisés ouverts

Modes de Connexion (Le "Comment")

1

Import (Mise en cache)

Importe les données dans la mémoire de Power BI. Rapide, permet toutes les transformations DAX, mais nécessite des actualisations planifiées.

2

DirectQuery (Temps réel)

Les données restent à la source. Power BI envoie une requête SQL à chaque clic. Données toujours à jour, mais potentiellement plus lent.

// Exemple M : Connexion à une API Web (Open Data) let Source = Json.Document(Web.Contents("https://api.donneesquebec.ca/api/action/datastore_search")), result = Source[result], records = result[records], #"Converted to Table" = Table.FromList(records, Splitter.SplitByNothing(), null, null, ExtraValues.Error) in #"Converted to Table"

4. Power Query et Transformation

Transformations Typiques

Étapes de Nettoyage des Données Scolaires

1
Standardiser: Formats de codes permanents, noms d'écoles
2
Nettoyer: Doublons d'élèves, inscriptions multiples
3
Calculer: Âge des élèves, années de retard
4
Enrichir: Ajouter régions administratives, indices socio-économiques

Exemple Pratique: Données d'Élèves

// Transformation des résultats scolaires let Source = Excel.Workbook(File.Contents("C:\Data\Resultats_2024.xlsx")), Data = Source{[Name="Bulletins"]}[Data], // Promouvoir en-têtes Headers = Table.PromoteHeaders(Data), // Typer les colonnes TypedData = Table.TransformColumnTypes(Headers, { {"CodePermanent", type text}, {"DateNaissance", type date}, {"Note", type number}, {"Matiere", type text}, {"Ecole", type text} }), // Calculer l'âge de l'élève WithAge = Table.AddColumn(TypedData, "Age", each Date.Year(DateTime.LocalNow()) - Date.Year([DateNaissance])), // Ajouter catégorie de performance WithCategory = Table.AddColumn(WithAge, "Performance", each if [Note] >= 80 then "Excellence" else if [Note] >= 60 then "Réussite" else "À risque"), // Grouper par école et matière Grouped = Table.Group(WithCategory, {"Ecole", "Matiere"}, { {"MoyenneNote", each List.Average([Note]), type number}, {"NbEleves", each Table.RowCount(_), type number}, {"TauxReussite", each List.Count(List.Select([Note], each _ >= 60)) / Table.RowCount(_) * 100, type number} }) in Grouped

💡 Bonnes Pratiques

  • Valider les codes permanents (format AAAA99999999)
  • Standardiser les noms de programmes
  • Conserver l'historique des modifications

⚠️ Attention Particulière

  • Protection des données personnelles (RGPD)
  • Anonymisation si nécessaire
  • Cohérence des codes matières

5. Modélisation des Données

Tables du Modèle

⭐ Table de Faits: Résultats

  • ID_Eleve
  • ID_Cohorte
  • ID_Ecole
  • ID_Date
  • Note

📚 Dimension: Élèves

  • Code Permanent
  • Nom, Prénom
  • Date Naissance
  • Genre

🏫 Dimension: Écoles

  • Code École
  • Nom École
  • CSS/CS
  • Type (primaire/secondaire)

📅 Dimension: Calendrier

  • Date
  • Année Scolaire
  • Étape
  • Trimestre

Relations et Cardinalités

Configuration des Relations

1
Élèves → Résultats (1:*)

Un élève a plusieurs résultats

2
Écoles → Résultats (1:*)

Une école a plusieurs résultats d'élèves

3
Calendrier → Résultats (1:*)

Une date contient plusieurs évaluations

Modèle de Données en Étoile

📊 FAIT_DIPLOMATION 🔑 ID_Eleve (FK) 🔑 ID_Ecole (FK) 🔑 ID_Cohorte (FK) 🔑 Date_Diplomation Statut_Diplome 👨‍🎓 DIM_ELEVE 🔑 ID_Eleve (PK) Code_Permanent Nom_Complet Date_Naissance 🏫 DIM_ECOLE 🔑 ID_Ecole (PK) Code_Ecole Nom_Ecole Adresse_Complete 📚 DIM_ELEVE_COHORTE 🔑 ID_Cohorte (PK) Annee_Cohorte Programme_Etude Niveau_Etude 📅 DIM_TEMPS 🔑 ID_Date (PK) Date_Complete Annee_Scolaire Trimestre 1 Un élève 1 Une école 1 Une cohorte 1 Une date Plusieurs diplomations

✅ Meilleures Pratiques Modélisation

6. DAX Mesures et autres Calculs

DAX (Data Analysis Expressions) est le langage de formules utilisé dans Power BI, Excel Power Pivot et Analysis Services. Il permet de créer des calculs personnalisés et des mesures sophistiquées pour analyser et manipuler les données. DAX combine la simplicité des formules Excel avec la puissance des bases de données relationnelles, offrant aux analystes la capacité de créer des insights avancés. Il permet de :

Mesures Essentielles

// Nombre total d'élèves Nb Élèves = DISTINCTCOUNT(Eleves[CodePermanent]) // Moyenne générale Moyenne Générale = AVERAGE(Resultats[Note]) // Taux de réussite Taux Réussite = DIVIDE( CALCULATE(COUNT(Resultats[Note]), Resultats[Note] >= 60), COUNT(Resultats[Note]) ) * 100 // Élèves à risque Élèves À Risque = CALCULATE( [Nb Élèves], FILTER( Resultats, Resultats[Note] < 60 ) ) // Taux de diplomation Taux Diplomation=DIVIDE( CALCULATE([Nb Élèves], Eleves[Diplome]="Obtenu" ), [Nb Élèves] ) * 100

Fonctions DAX

Calculs Statistiques

  • AVERAGE - Moyennes de classe
  • MEDIAN - Note médiane
  • STDEV.P - Écart-type notes

Filtres Contextuels

  • CALCULATE - Filtrer par école/niveau
  • FILTER - Élèves spécifiques
  • ALL - Ignorer filtres

Calculs Avancés

  • RANKX - Classement élèves
  • TOPN - Meilleurs élèves
  • Summarize - Catégorisation de notes

✅ Meilleures Pratiques DAX

Quiz #2 - DAX et Modélisation

Question 1: Quelle fonction DAX utiliseriez-vous pour calculer le nombre d'élèves uniques dans une école?
A) COUNT(Eleves[CodePermanent])
B) DISTINCTCOUNT(Eleves[CodePermanent])
C) SUM(Eleves[CodePermanent])
D) AVERAGE(Eleves[CodePermanent])
Question 2: Dans un modèle en étoile, quelle serait la table de faits principale?
A) Table Élèves
B) Table Écoles
C) Table Résultats/Évaluations
D) Table Calendrier
Question 3: Pour calculer un taux de réussite, quelle approche est la plus appropriée?
A) COUNT des notes >= 60
B) AVERAGE de toutes les notes
C) DIVIDE(notes >= 60, total notes) * 100
D) SUM des notes / COUNT des élèves

7. Visualisations

Un visuel dans Power BI sert à représenter les données sous forme de graphique ou tableau. Il aide à comprendre, comparer et explorer les informations de façon claire et interactive

Types de Visualisations Adaptées

Performance Scolaire

  • Histogrammes - Distribution notes
  • Gauge - Taux de réussite
  • KPI Cards - Moyennes clés

Évolution Temporelle

  • Lignes - Progression annuelle
  • Combo - Notes vs Présences
  • Waterfall - Flux élèves

Analyses Géographiques

  • Cartes - Performance par région
  • Bulles - Taille écoles
  • Heat map - Densité élèves

Tableaux de Bord

  • Matrices - Résultats par niveau
  • Treemap - Répartition programmes
  • Scatter - Corrélations

💡 Conseils Visualisation

8. Design et UX pour Utilisateurs

Personas Utilisateurs

Enseignants

  • Vue classe avec tous élèves
  • Alertes élèves en difficulté
  • Comparaison entre évaluations

Directions d'École

  • Vue d'ensemble école
  • Comparaisons entre niveaux
  • Indicateurs ministériels

Conseillers Pédagogiques

  • Analyses par programme
  • Comparaisons inter-écoles
  • Rapports détaillés

Principes de Design

Navigation Intuitive

  • Hiérarchie claire des segments
  • Info bulle d'aide pour contextualiser
  • Autres actions d'export ou intéractions avec les visuels

Quiz #3 - Visualisations et Design

Question 1: Quel type de visualisation est le plus approprié pour montrer le taux de diplomation par région?
A) Graphique en secteurs
B) Carte géographique
C) Graphique en aires
D) Matrice
Question 2: Pour un directeur d'école, quelle vue serait prioritaire dans le dashboard?
A) Liste détaillée de tous les élèves
B) Vue d'ensemble avec KPIs de l'école
C) Graphiques techniques complexes
D) Données brutes en tableau

💡 Rappel Design

Un bon dashboard doit être adapté à son audience. Les enseignants ont besoin de détails par élève, tandis que les directions veulent une vue stratégique.

9. Copilot AI - L'Intelligence Artificielle dans Power BI

Qu'est-ce que Copilot dans Power BI?

Copilot est l'assistant IA intégré de Microsoft qui révolutionne l'analyse de données en permettant aux utilisateurs d'interagir avec leurs données en langage naturel.

Fonctionnalités Copilot

🗣️ Requêtes en Langage Naturel

  • "Montre-moi les élèves à risque cette année"
  • "Compare les résultats par école"
  • "Quelles matières ont le plus d'échecs?"

🤖 Génération Automatique

  • Création de mesures DAX automatiques
  • Génération de rapports suggérés
  • Résumés narratifs des données

🔍 Insights Automatiques

  • Détection d'anomalies dans les notes
  • Identification de tendances cachées
  • Facteurs de corrélation découverts

Licences et Limitations

💳 Licences Requises

  • Fabric F64+: Pour modèles sémantiques avancés

⚠️ Limitations Actuelles

  • Contexte: Nécessite des données bien structurées
  • Coût: Licence additionnelle significative

Conseils d'Implémentation

✅ Meilleures Pratiques

10. Performance pour des Données Massives

Défis Spécifiques

📊 Volume de Données

  • 500k+ élèves au Québec
  • Historique 10+ années
  • Données présences quotidiennes

⚡ Optimisations Requises

  • Agrégations pré-calculées
  • Partitionnement par année
  • Indexes sur codes permanents

Stratégies d'Optimisation

Approche Recommandée

1
Segmenter les données: Actifs vs Archives (>2 ans)
2
Agréger à la source: Moyennes par étape pré-calculées
3
Incremental Refresh: Mise à jour quotidienne différentielle
4
Composite Models: DirectQuery pour temps réel + Import historique

Mesures Optimisées

// Moyenne optimisée avec cache Moyenne Classe Optimisée = VAR ClasseSelectionnee = SELECTEDVALUE(Classes[ID_Classe]) VAR ResultatCache = LOOKUPVALUE( MoyennesPreCalculees[Moyenne], MoyennesPreCalculees[ID_Classe], ClasseSelectionnee, MoyennesPreCalculees[Periode], SELECTEDVALUE(Calendrier[Periode]) ) RETURN IF( NOT ISBLANK(ResultatCache), ResultatCache, CALCULATE( AVERAGE(Resultats[Note]), Classes[ID_Classe] = ClasseSelectionnee ) ) // Utiliser SUMMARIZECOLUMNS pour gros volumes Statistiques Ecoles = SUMMARIZECOLUMNS( Ecoles[ID_Ecole], Ecoles[Nom_Ecole], "Nb_Eleves", DISTINCTCOUNT(Eleves[CodePermanent]), "Moyenne", AVERAGE(Resultats[Note]), "Taux_Reussite", DIVIDE( COUNTROWS(FILTER(Resultats, Resultats[Note] >= 60)), COUNTROWS(Resultats) ) * 100 )

✅ Checklist Performance

11. Sécurité et Protection des Données

Row-Level Security

Niveaux de Sécurité

1
Enseignant: Voir seulement ses classes/élèves
2
Direction: Voir toute l'école
3
CSS: Voir toutes les écoles du territoire
4
Ministère: Accès provincial avec anonymisation

Conformité et Protection

🔐 Protection des Mineurs

  • Anonymisation données sensibles
  • Pas de photos/infos personnelles
  • Accès limité aux besoins

📋 Conformité Légale

  • Loi 25 protection renseignements
  • Politiques ministérielles
  • Consentement parental

Gouvernance des Données

Cycle de Vie des Données Élèves

Synthèse du Parcours - Conception Power BI

Processus Complet

Avant de plonger dans les aspects techniques, il est crucial de bien définir le cadre de votre projet : identifier clairement votre audience cible, délimiter le périmètre d'analyse, et surtout déterminer quelles décisions concrètes découleront de vos rapports.

Backend

Systèmes Opérationnels, Entrepôt de Données

Power BI Desktop

Power Query ETL, Modélisation et DAX, Visualisations

Power BI Service

Sécurité RLS, Déploiement, Mise à jour, Partage

Points Clés à Retenir

Données

  • Nettoyer et standardiser
  • Respecter confidentialité
  • Optimiser performances

Analyses

  • KPIs pertinents
  • Comparaisons équitables
  • Insights actionnables

Utilisateurs

  • Focus sur l'audience
  • Navigation intuitive
  • Formation continue

Évolution

  • Feedback utilisateurs
  • IA et prédiction
  • Intégrations futures

Merci pour votre participation!

Des questions? Contactez-nous!

Support post-formation disponible

Atelier Pratique

Projet: Suivi de la Diplomation

Objectif de l'Atelier

Créer un dashboard complet pour le suivi de performance scolaire incluant:

  • Import des données
  • Modèle relationnel
  • Calculs de performance
  • Visualisations adaptées
  • Sécurité et déploiement

Source de données

  • dim_diplome - Informations des diplomes
  • dim_ecole - Données des établissements
  • dim_eleve_cohorte - Regroupement par cohorte
  • fait_diplomation - Faits de diplomation

🚀 Commençons l'Atelier!

Ouvrez Power BI Desktop et chargeons ensemble les premières données.