Chapitre 4 · Expert · Leçon 26 / 26
Python dans Excel
C'est quoi Python dans Excel ?
Python dans Excel te permet d'écrire et d'exécuter du code Python directement dans une cellule, grâce à la fonction =PY(). Tu tapes ton code, tu valides, et le résultat (un nombre, un tableau, un graphique) revient dans la feuille comme s'il s'agissait d'une formule.
La particularité, c'est que ce code ne s'exécute pas sur ton ordinateur. Il part vers les serveurs cloud de Microsoft, s'y exécute dans un environnement sécurisé qui contient déjà les bibliothèques d'analyse les plus courantes (pandas, numpy, matplotlib, seaborn), puis le résultat redescend dans ta cellule. Tu n'as donc rien à installer ni à configurer.
Pourquoi c'est intéressant
Python ouvre des possibilités que les formules Excel atteignent difficilement : statistiques avancées, visualisations soignées (nuages de points, cartes de chaleur, distributions), traitements sur de gros volumes, voire des modèles de machine learning. Le tout sans quitter le confort de ta feuille de calcul, et sans basculer vers un autre logiciel.
Une fonctionnalité récente, à manier avec recul
Python dans Excel est arrivé en 2023 et continue d'évoluer. Tout le monde n'y a pas encore accès, et le fait que le code tourne dans le cloud a des conséquences réelles sur la vitesse et la confidentialité. Cette leçon te montre comment ça marche et, tout aussi important, quand l'utiliser et quand t'en passer.
La disponibilité : qui peut l'utiliser ?
Avant tout, vérifie si tu y as accès. Python dans Excel est réservé aux abonnements Microsoft 365. Il n'existe pas dans les versions à licence perpétuelle comme Excel 2021, 2019 ou 2016.
Disponible avec Microsoft 365
Sur Excel pour Windows, Excel pour Mac et Excel pour le web. La fonction PY() apparaît dans l'onglet Formules quand ton compte y a droit. Le déploiement s'est fait par vagues depuis 2023.
Indisponible sans abonnement
Excel 2021, 2019, 2016 et les éditions perpétuelles n'ont pas la fonction. Si tu ne vois pas « Insérer Python » dans l'onglet Formules, ta version ne le propose pas (encore).
À noter : certaines fonctionnalités avancées (bibliothèques supplémentaires, exécutions plus longues) peuvent dépendre du type d'abonnement et faire l'objet d'options payantes. Pour un usage courant (manipuler des données, tracer des graphes), l'accès Microsoft 365 standard suffit.
Écrire ta première cellule Python
Le passage en mode Python se fait en quatre temps. L'essentiel à retenir : tu restes dans une cellule, mais tu y écris du Python au lieu d'une formule.
Active le mode Python dans la cellule
Sélectionne une cellule, va dans l'onglet Formules > Insérer Python, ou tape simplement =PY( pour basculer la cellule en mode Python. Un badge vert « PY » apparaît dans la cellule, en haut à gauche.
Écris ton code Python
Tu écris du Python directement dans la cellule. Pour faire référence à une plage Excel, utilise xl("A1:C100", headers=True) : Excel convertit la plage en DataFrame pandas. Maj + Entrée crée un retour à la ligne dans le code sans valider.
Valide avec Ctrl + Entrée
Le code part vers le cloud Microsoft, s'exécute, et le résultat revient. Par défaut, Excel affiche un objet Python (un aperçu replié). Clique sur l'icône à gauche pour choisir entre « Objet Python » et « Valeur Excel » (le résultat déversé dans les cellules).
Choisis la sortie : objet ou valeurs
Un DataFrame peut rester un objet compact (pratique pour le réutiliser dans une autre cellule PY()) ou se déverser en valeurs Excel classiques, lignes et colonnes, que tu peux trier, filtrer et mettre en forme comme n'importe quelle plage.
# Dans une cellule en mode PY :
import pandas as pd
# Récupérer un tableau Excel sous forme de DataFrame
df = xl("Ventes[#All]", headers=True)
# Afficher les 5 premières lignes
df.head()La fonction xl() est le pont entre Excel et Python : elle prend une référence de plage ou de tableau et la convertit en DataFrame pandas. Tu peux aussi écrire xl("A1:C100", headers=True) pour une plage classique avec en-têtes.
Manipuler les données avec pandas
pandas est la bibliothèque Python de référence pour travailler des données tabulaires. Son objet central, le DataFrame, ressemble à un tableau Excel : des colonnes nommées, des types, des lignes. Une fois que tu as ce réflexe, quatre opérations couvrent l'essentiel de ce que tu feras au quotidien.
D'abord, tu récupères ton tableau. df = xl("Ventes[#All]", headers=True) charge ton tableau Excel dans un DataFrame nommé df, prêt à être interrogé en quelques lignes. C'est le point de départ de presque toutes tes cellules Python.
Ensuite, tu filtres les lignes. df[df["Montant"] > 1000] ne garde que les lignes dont le montant dépasse 1000. La syntaxe paraît dense au début, mais elle remplace les filtres manuels et reste reproductible à chaque réexécution du code, sans toucher à la souris.
Puis tu groupes et tu agrèges. df.groupby("Region")["Montant"].sum() calcule le chiffre d'affaires par région en une ligne. C'est l'équivalent d'un tableau croisé dynamique, mais scriptable et combinable avec d'autres traitements statistiques.
Enfin, tu explores d'un coup d'œil. df.describe() sort les statistiques clés (moyenne, écart-type, minimum, maximum et quartiles) de chaque colonne numérique. Idéal pour prendre la température d'un jeu de données avant de l'analyser en détail.
import pandas as pd
df = xl("Ventes[#All]", headers=True)
# Chiffre d'affaires par région, du plus élevé au plus faible
ca_region = (
df[df["Montant"] > 0]
.groupby("Region")["Montant"]
.sum()
.sort_values(ascending=False)
)
ca_regionLe réflexe à garder
En quelques lignes, tu obtiens l'équivalent d'un tableau croisé, mais reproductible et combinable. La syntaxe pandas demande un temps d'adaptation : commence par copier des extraits qui marchent et modifie-les peu à peu, plutôt que de tout écrire de mémoire. Tu progresseras par imitation, comme avec le langage M de Power Query.
Visualiser avec matplotlib et seaborn
C'est l'un des points forts de Python dans Excel : produire des graphiques que les graphiques natifs d'Excel ne savent pas faire facilement. Les bibliothèques matplotlib et seaborn sont déjà disponibles, et le graphe revient directement dans ta cellule sous forme d'image.
Un histogramme en trois lignes
seaborn produit des graphes soignés avec très peu de code. Ici, la distribution des montants de vente :
import seaborn as sns
df = xl("Ventes[#All]", headers=True)
sns.histplot(df["Montant"], bins=20)Le graphe apparaît comme une image dans la cellule. Tu peux l'extraire « sur la grille » pour le redimensionner et le déplacer comme une image classique. Au-delà de l'histogramme, seaborn dessine des nuages de points, des matrices de corrélation, des box plots, des cartes de chaleur, tous très lisibles dès la première tentative.
Pour un graphique simple et interactif lié à ta feuille, les graphiques natifs d'Excel restent plus pratiques. Python brille pour les visualisations statistiques avancées et les graphes que tu veux produire à l'identique, encore et encore, à partir du même code.
Faire circuler les données entre Excel et Python
Tout l'intérêt tient dans cet aller-retour fluide : Excel fournit les données, Python les traite, Excel récupère le résultat. Deux directions à connaître.
D'Excel vers Python, c'est la fonction xl(). Tu pointes une plage ou un tableau avec xl("Ventes[#All]", headers=True) et Python reçoit un DataFrame pandas. Si les données Excel changent, le code se réexécute et le résultat se met à jour tout seul.
De Python vers Excel, tu choisis entre objet et valeurs. Le résultat d'une cellule PY() peut rester un objet Python compact, réutilisable dans une autre cellule PY(), ou se déverser en valeurs Excel classiques, que tu tries, filtres et mets en forme normalement. Le choix se fait via l'icône à gauche de la cellule.
Chaîner les cellules Python
Une cellule PY() peut réutiliser le résultat d'une autre, dans l'ordre de calcul de la feuille (de haut en bas, de gauche à droite). Tu peux ainsi découper un traitement : une cellule charge et nettoie, une autre agrège, une troisième trace le graphe. Le tout reste lisible et chaque étape se vérifie séparément.
Python, formules ou Power Query : quand choisir quoi ?
Les trois cohabitent dans un même classeur. Voici comment trancher selon ce que tu cherches à faire.
Les formules, pour le calcul interactif et rapide. Quand le résultat doit réagir instantanément à chaque saisie, rester entièrement sur ta machine et se comprendre d'un coup d'œil, les formules gardent l'avantage. SOMME.SI.ENS, RECHERCHEX, SI : c'est le terrain naturel d'Excel, et rien ne le détrône sur la réactivité.
Power Query, pour importer et nettoyer en boucle. Quand tu reçois régulièrement des données externes à nettoyer et structurer de la même façon, Power Query enregistre les étapes et les rejoue à chaque actualisation, sans écrire la moindre ligne de code. C'est l'outil du nettoyage répétable.
Python, pour l'analyse poussée et la visualisation. Quand tu as besoin de statistiques avancées, de graphiques que les formules ne savent pas produire ou de machine learning, Python prend le relais là où Excel atteint ses limites, au prix d'un aller-retour vers le cloud.
La logique d'ensemble
Power Query importe et nettoie, les formules calculent au fil de l'eau, Python analyse et visualise en profondeur. Tu n'as pas à choisir une fois pour toutes : un même classeur peut nettoyer avec Power Query, puis lancer une analyse statistique en Python sur le tableau obtenu. Chaque outil sur son point fort.
Les limites à connaître (et à respecter)
Python dans Excel est puissant, mais le fait que le code tourne dans le cloud impose des contraintes réelles. Mieux vaut les connaître avant de bâtir un classeur dessus.
Une connexion Internet obligatoire
Le code s'exécute sur les serveurs Microsoft. Sans connexion, aucune cellule PY() ne fonctionne. Tes calculs Python dépendent donc de ta connectivité, là où une formule classique tourne toujours, même hors ligne.
Une vitesse en retrait
Chaque exécution fait un aller-retour vers le cloud, donc plus lent qu'une formule locale. Pour quelques cellules, c'est invisible. Sur un classeur saturé de cellules PY(), la latence s'accumule. Réserve Python aux analyses ponctuelles, pas aux calculs qui doivent réagir en temps réel.
La confidentialité des données
Les données nécessaires au calcul transitent par les serveurs Microsoft. Pour des informations sensibles (données RH, financières, personnelles), vérifie la politique de ton organisation avant d'utiliser Python. C'est la différence majeure avec les formules, qui restent sur ta machine.
Le bon usage en une phrase
Utilise Python dans Excel pour une analyse ou une visualisation ponctuelle sur des données non sensibles, quand les formules et Power Query ne suffisent plus. Pour un classeur partagé, interactif et confidentiel, garde les outils natifs d'Excel.
Questions fréquentes sur Python dans Excel
Non. Python dans Excel est réservé à Microsoft 365 (Excel pour Windows et Mac, et Excel pour le web). Il n'existe pas dans les versions sans abonnement comme Excel 2021 ou 2019, ni dans les licences perpétuelles. Déployée à partir de 2023, la fonctionnalité est aujourd'hui largement disponible sur les abonnements Microsoft 365 à jour.
Non, rien à installer. Le code Python s'exécute dans le cloud Microsoft, sur des serveurs distants, pas sur ta machine. Tu écris ton code dans une cellule via la fonction PY(), Excel l'envoie au cloud, et le résultat revient dans la feuille. Les bibliothèques courantes (pandas, matplotlib, numpy, seaborn) sont déjà disponibles, tu les importes sans étape de configuration.
Oui. Comme le code s'exécute dans le cloud Microsoft, les données nécessaires au calcul transitent par les serveurs Microsoft. Pour des données sensibles ou confidentielles, vérifie la politique de ton organisation avant d'utiliser Python dans Excel. C'est une différence majeure avec les formules classiques, qui restent entièrement sur ton ordinateur.
Non, il les complète. Les formules restent imbattables pour des calculs rapides et interactifs. Power Query excelle pour importer et nettoyer des données de façon répétable. Python entre en jeu pour l'analyse statistique poussée, la visualisation avancée et le machine learning, là où les formules atteignent leurs limites. Chacun garde son terrain de prédilection.
Un DataFrame est l'équivalent d'un tableau Excel côté Python : des lignes, des colonnes nommées, des types par colonne. La bibliothèque pandas le manipule avec quelques lignes de code, pour filtrer, grouper, agréger ou pivoter des données. Quand tu fais référence à une plage Excel dans une cellule PY(), Excel la convertit automatiquement en DataFrame pandas, prêt à l'emploi.
Il est plus lent qu'une formule classique, car chaque calcul fait un aller-retour vers le cloud Microsoft. Pour quelques cellules, c'est imperceptible. Sur un classeur truffé de cellules PY() recalculées en continu, la latence se ressent. Le bon usage : réserver Python aux analyses ponctuelles et aux visualisations, pas aux calculs qui doivent réagir instantanément à chaque saisie.
Tu veux explorer Python et l'analyse de données dans Excel ?
Le Dojo Club te donne accès à des exercices guidés, des lives experts chaque semaine et une communauté active pour progresser sur Excel, la data et l'automatisation.
Rejoindre le Dojo