1. Pourquoi Python et Excel?
1.1. Excel: LE tableur des indépendants et des PME
Qu’on l’apprécie ou non, force est de constater qu’Excel est le tableur le plus utilisé par les indépendants et les PME. Il y a 20 ans, c’était le plus souvent justifié par la crainte de problèmes de compatibilité avec d’autres solutions. Maintenant, c’est, le plus souvent, par inertie. Ou par nécessité, par crainte de devoir recréer toute une série de macros et/ou de formules accumulées au fil des ans.
Car la grande force d’Excel, c’est sa rétrocompatibilité: des formules et des macros définies il y a plusieurs dizaines d’années sont toujours (pour la plupart, en tout cas) fonctionnelles. Dans le pire des cas, avec quelques adaptations, mineures le plus souvent.
C’est aussi la faiblesse d’Excel: à force de rétrocompatibilité, la solution en devient parfois lourde, voire buggée. Sans parler de son langage de programmation, VBA, qui est aussi rébarbatif pour un débutant que peu adapté aux structures de données utilisées par l’intelligence artificielle.
1.2. Python: LE langage de programmation pour l’intelligence artificielle
Les atouts le plus souvent mentionnés pour justifier la popularité de Python dans le domaine de l’intelligence artificielle sont:- Sa syntaxe simple qui en fait un langage très abordable, même pour des débutants
- La vaste et dynamique communauté de ses développeurs, qui se traduit par l’abondance de ressources gratuites: de nombreuses librairies spécialisées en IA, que ce soit pour le traitement des données, leur visualisation ou les algorithmes d’IA à proprement parler, des tutoriels, des exemples de code…
- Son indépendance de toute plateforme.
2. Python dans Excel
En 2023, Microsoft a intégré dans Excel la possibilité d’exécuter du code Python nativement dans les cellules, grâce à la fonction =PY(). Les principaux avantages de cette intégration:
- Aucune installation ni configuration d’environnement Python distincte n’est requise.
- Les mises à jour sont gérées en continu par Microsoft. Et ça, c’est déjà un avantage non négligeable!
- Le traitement des données, l’utilisation des fonctionnalités d’IA et la visualisation des données comme des résultats d’analyse, tout est fait dans Excel.
2.1. On parle d’Excel… la question des versions compatibles 😉
Contrairement à Google Sheets ou LibreOffice Calc, Excel se décline en une multitude de versions, qui n’offrent ni les mêmes interfaces utilisateur ni les mêmes fonctionnalités! Donc, la première chose à faire est de vérifier si votre version vous offre cette option.
Vous y avez accès si vous êtes abonné à Microsoft 365 sur Windows, mais pas si vous utilisez les versions d’Excel sur Mac (à moins d’installer Parallels Desktop, voir https://www.anaconda.com/blog/how-to-run-python-in-excel-on-a-mac, ou de travailler avec Excel Online, bien sûr), iPad, iPhone ou Android. Pour les autres abonnements/versions, référez-vous directement à la documentation de Microsoft: https://support.microsoft.com/fr-fr/office/disponibilité-de-python-dans-excel-781383e6-86b9-4156-84fb-93e786f7cab0.
2.2. Comment ça marche?
Si vous avez la chance d’avoir une version d’Excel qui vous donne accès à Python dans Excel, voici comment y accéder:
– Dans le menu principal, cliquez sur «Formules», puis sur «Insérer Python»:
Ou, en alternative, insérez simplement dans la cellule de votre choix: «=PY(». L’apparence de cette cellule changera comme ci-dessous:
– Dans cette cellule, introduisez «df=» puis sélectionnez les cellules qui contiennent vos données:
Pour exécuter cette commande, cliquez sur Ctrl+Enter. Au bout d’un moment (pas d’impatience!), le contenu de la cellule change pour indiquer qu’elle contient désormais une «data frame», la structure de données gérée par Pandas, une des librairies Python qui sont chargées par défaut dès que vous accédez à Python dans Excel.
Voilà, vous avez votre première structure de données dans Python sans sortir d’Excel.
Outre Python, une série de librairies spécifiques sont chargées automatiquement dès que vous faites appel à Python dans Excel. Pour savoir lesquelles, toujours dans l’onglet Python cliquez sur «Initialisation»:
Un panneau latéral vous montre alors la liste des imports:
On y trouve quelques-unes des librairies les plus utiles pour travailler à l’aide de Python dans Excel:
- Numpy: offrant une belle série de fonctionnalités de calcul scientifique, cette librairie est très utilisée entre autres pour sa grande capacité à manipuler des ensembles de données multi-dimensionnels.
- Pandas: librairie spécialisée dans la manipulation et l’analyse de données.
- Matplotlib: librairie pour la publication de graphiques de qualité, aussi bien en format fixe que dans des environnements interactifs sur différentes plateformes. Elle permet de concevoir des diagrammes, des graphiques, des camemberts, des nuages de points, des histogrammes, des graphiques de marge d’erreur, etc., en quelques lignes de code seulement et avec beaucoup plus d’options que leurs équivalents Excel.
- Statsmodels: comme son nom l’indique, une librairie spécialisée dans les modèles, analyses et tests statistiques, et capable de traiter pour ce faire de très vastes ensembles de données.
- Seaborn: dérivée de Matplotlib, Seaborn est spécialisée dans la visualisation des modèles statistiques et est très bien intégrée avec Pandas.
Si vous souhaitez travailler avec d’autres librairies, il suffit d’introduire les commandes d’import correspondantes dans une cellule d’Excel. Par exemple:
2.3. Exemple d’application
Sans vouloir entrer ici dans les détails de Python, ce qui sortirait du cadre de cette introduction, voyons un exemple courant d’application possible de Python dans Excel.
Une des techniques de base du Machine Learning (apprentissage machine) est la segmentation de données, ou clustering en anglais. Cette fonctionnalité, utile par exemple pour définir quelques profils types à partir de l’ensemble de vos données clients, est entre autres disponible dans la librairie scikit-learn. Celle-ci n’est pas installée par défaut, vous devez donc commencer par l’importer. Afin d’éviter de surcharger inutilement votre fichier, sélectionnez juste cette fonctionnalité au lieu d’importer la totalité de la librairie:
Dans vos données, sélectionnez les colonnes que vous souhaitez étudier puis introduisez-les dans le modèle de segmentation. Ce modèle sépare les données en plusieurs groupes homogènes, c’est-à-dire des groupes de données partageant plus de caractéristiques communes entre elles qu’avec les données des autres groupes.
Grâce à la librairie Matplotlib, qui est importée par défaut, il est possible de visualiser très facilement les différents groupes ainsi que leur centre de gravité:
Enfin… c’est possible pour deux colonnes de données, qui donnent un graphique bi-dimensionnel, avec un axe horizontal et un axe vertical. À la limite, trois, même si l’œil humain aura déjà un peu plus de mal avec un graphique tri-dimensionnel. Mais l’intérêt réel de cette approche est évidemment de pouvoir traiter plus de dimensions, ce qui est impossible avec une simple visualisation graphique.
4. Autres solutions
Contrairement à Python dans Excel, les alternatives proposées ci-dessous nécessitent la configuration et la maintenance d’un environnement de développement Python, ce qui nécessite plus de compétences techniques. Elles ne sont donc mentionnées qu’à titre d’information mais ne seront pas développées ici.
4.1. Extensions pour Excel
Parmi les extensions disponibles pour Excel, PyXLL offre le même genre d’interface utilisateur que Python dans Excel, en permettant d’insérer le code Python directement dans une cellule. Par contre, il vous en coûtera des frais de licence supplémentaires (actuellement 30 ou 35$ par utilisateur et par mois, selon que vous optez pour un abonnement annuel ou mensuel).
D’autre part, comme exposé ci-dessus vous devrez au préalable configurer vous-même un environnement de développement pour Python en-dehors d’Excel. Ceci est un inconvénient si vous souhaitez limiter les éléments techniques, mais un avantage si vous êtes à l’aise avec Python et préférez garder la maîtrise sur le suivi des versions successives de vos développements, des librairies avec lesquelles vous travaillez et si vous ne voulez pas dépendre des taux de charge des serveurs de Microsoft pour l’exécution de vos scripts.
Par contre, comme Python dans Excel, cette solution n’est toujours pas compatible avec Excel pour MacOS ou la version web d’Office 365.
4.2. Python hors Excel
Des librairies Python telles que Pandas ou OpenPyXL permettent d’automatiser la lecture, le traitement et l’écriture de fichiers Excel en dehors de l’application Excel. Ces solutions sont compatibles avec toutes les versions d’Excel prenant en charge les fichiers .xlsx.Pour automatiser l’interactivité avec Excel, la librairie Xlwings fonctionne indifféremment avec Excel sur Windows ou sur MacOS.
4.3. Interaction VBA/Python
Il est également possible de configurer des macros VBA (Excel) pour appeler des scripts ou des exécutables Python, permettant ainsi de déclencher depuis Excel l’exécution de modèles d’IA, voir par exemple: https://pythonandvba.com/blog/how-to-execute-a-python-script-from-excel-using-vba/.
4.4. Power Query
Les sorties de modèles d’IA stockées en externe (par exemple, fichiers CSV, bases de données) peuvent être importées dans Excel grâce à la fonctionnalité «Obtenir et transformer» de Power Query pour des analyses et des rapports plus approfondis. Il s’agit évidemment d’une intégration nettement moins étroite d’Excel avec les modèles IA.
Conclusion
Parmi toutes les solutions disponibles pour combiner les atouts de Python et Excel, il est clair que l’option Python dans Excel offerte par Microsoft est de loin la plus simple à mettre en œuvre, si votre version d’Excel est compatible avec cette fonctionnalité.
À condition, bien sûr, d’être d’accord de dépendre des serveurs de Microsoft pour héberger vos données et faire tourner vos scripts.
Partager :
- Cliquez pour partager sur LinkedIn(ouvre dans une nouvelle fenêtre) LinkedIn
- Cliquer pour partager sur X(ouvre dans une nouvelle fenêtre) X
- Cliquez pour partager sur Facebook(ouvre dans une nouvelle fenêtre) Facebook
- Cliquer pour envoyer un lien par e-mail à un ami(ouvre dans une nouvelle fenêtre) E-mail
- Cliquer pour imprimer(ouvre dans une nouvelle fenêtre) Imprimer
- Plus
- Cliquez pour partager sur Pinterest(ouvre dans une nouvelle fenêtre) Pinterest
- Cliquez pour partager sur Reddit(ouvre dans une nouvelle fenêtre) Reddit
- Cliquez pour partager sur Telegram(ouvre dans une nouvelle fenêtre) Telegram
- Cliquez pour partager sur Tumblr(ouvre dans une nouvelle fenêtre) Tumblr
- Cliquez pour partager sur WhatsApp(ouvre dans une nouvelle fenêtre) WhatsApp
