Python dans Excel

Python dans Excel, Microsoft et Anaconda avancent ensemble

Emmanuel Jakobowicz Mis à jour le : 18 septembre 2023 annonce, python Leave a Comment

Depuis la rentrée, vous n'avez pas pu rater l'annonce de Microsoft et d'Anaconda, l'arrivée en fanfare du langage python dans Excel. Tous l'écosystème data science s'est excité et a publié des articles sur le sujet. Il s'agissait plutôt de relais des communiqués de presse de Microsoft et Anaconda. Maintenant que l'effervescence est un peu redescendue, je pense qu'il est important de développer un peu cette nouveauté que beaucoup attendaient et que quelques-uns redoutaient.

Dans cet article, je me propose de vous montrer le fonctionnement mais aussi de réfléchir aux impacts en entreprise de ce "tremblement de terre".

Image
Excel logo

La grande nouvelle que tout le monde attendait

Voici des années que l'on en parle et Microsoft vient enfin d'annoncer que python s'intègre dans Excel.

Cette grande nouvelle s'accompagne de nombreuses questions mais nous permet d'entrevoir des applications extrêmement variées.

Cette intégration se fait en collaboration avec le partenaire de Stat4decision : Anaconda.

Une fois la nouvelle digérée, j'ai pu comme beaucoup d'utilisateurs de python en data science me lancer dans les tests. Et quelle déception, j'ai suivi tous les tutos et malgré la passage en canal bétâ de ma version d'Office, pas de python en vue. Finalement, après 15 jours d'attente, Python est apparu comme par magie dans mon ruban Excel dans le menu formules. Les tests pouvaient alors commencer... Avant de partir sur la pratique et sur les résultats, il est important de prendre un peu de recul et de mieux comprendre cette intégration de python dans Excel.

Comment ça marche ?

Tout d'abord avant de vous ruer sur votre Excel pour vérifier que vous avez accès à Python, il faut savoir qu'il s'agit d'une fonctionnalité disponible dans la version béta d'Excel 365, il vous faudra donc quelques manipulations pour y avoir accès. Néanmoins, le fait que Microsoft ajoute cette fonctionnalité en béta dans Excel prouve que l'intégration de python dans Excel est sur la bonne voie.

Nous verrons plus tard dans l'article comment y accéder et comment l'utiliser.

Microsoft a travaillé avec les équipes d'Anaconda pour intégrer python sans avoir à installer python sur votre machine, il vous suffira d'avoir Excel et une connexion internet pour utiliser python dans Excel. En effet, python est installé sur Azure (le cloud de Microsoft) afin de rendre accessible Python aussi bien pour les versions desktop et web d'Excel. La version Mac d'Office n'est pas encore inclue mais ceci ne devrait pas tarder.

Ce choix d'héberger python sur le cloud a ses avantages et ses inconvénients.

Avantages :

  • Accès à python sans aucune installation locale
  • Gestion de python par Microsoft afin d'être compatible avec les versions d'Excel 365 et de garder une version stable de python
  • Possibilité d'utiliser les fonctions python en cloud

Inconvénients :

  • Pas de choix des packages à installer (Microsoft donne accès à la majorité des packages du dépôt Anaconda mais vous ne pourrez pas accéder à votre package déniché sur pypi ou GitHub et qui vous plaisait tant).
  • Quid des performances et du coût d'utilisation (si vous lancez des traitements lourds sur Excel), Microsoft est assez évasif sur ce sujet.
  • Sans connexion internet pas de python ce qui peut être pénalisant pour les utilisateurs.
  • Lorsque vous lancez un calcul vos données sont "transmises" à Microsoft même si Microsoft nous garantit un niveau de sécurité très élevé.

     

J'entends déjà beaucoup d'entre vous dire que ce python n'est pas ce qu'ils attendaient, qu'ils veulent utiliser d'autres packages, que ça ne rentre pas dans leur façon habituelle de coder en python (environnement, version control...).

Je pourrais leur répondre que ce python dans Excel n'est pas fait pour eux.

En effet, Microsoft et Anaconda visent des utilisateurs de python qui ne sont pas des développeurs car ceux-ci savent déjà comment interagir depuis leur code python avec Excel ou n'importe quelle application. Cette version s'adresse aux utilisateurs d'Excel qui veulent faire des traitements plus avancés et qui sont habitués à coder. J'en vois de nombreux au quotidien. Notamment les adeptes du VBA et les adeptes de la formule Excel à rallonge. Vous en trouverez des grandes quantités dans les entreprises qui seront très friands de cette nouvelle approche de python sans se poser de questions (je ne dis pas que c'est une bonne chose, je constate juste un fait vérifiable dans la plupart des entreprises).

Après, nous sommes en version béta, on peut donc s'attendre à des évolutions et je ne serais pas étonné que Microsoft propose des solutions sur Azure vous permettant d'installer des packages spécifiques associés à votre compte contre quelques euros.

Une autre question qui se pose est de savoir pourquoi Microsoft a été chercher Anaconda pour faire cela ? Microsoft avait quand même recruter Guido Van Rossum (le créateur de python) il y a peu. Anaconda avec son répertoire de packages validés permet à Microsoft de ne pas dépendre de choix internes. A la différence de R, en python nous n'avons pas de CRAN (le répertoire des packages R) qui soit bien réglementé (le PyPi est un gros bazar) et Anaconda a basé son modèle économique sur son répertoire depuis le début. A partir de là, il semblait logique que Microsoft s'associe à Anaconda. L'autre question qui se pose est de savoir quelles vont être les retombées pour Anaconda à part des retombées en terme de notoriété (dont ils ne manquent pas), est-ce que des produits sont prévus ensuite ? Les prochaines annonces nous le diront (et ça commence déjà avec un toolbox dédié que je testerai prochainement).

Il est maintenant temps de rentrer dans le vif du sujet.

Comment accéder à python dans Excel ?

C'est à la fois simple et compliqué.

Il suffit de passer en canal béta pour les mises à jour d'Office. Cela paraît simple et c'est ce que j'ai fait à la seconde où j'ai entendu parler de cette feature, vous trouverez toute la documentation sur le programme insider et le canal béta ici. Par contre, ma déception a été grande lorsque j'ai compris qu'uniquement certains utilisateurs avaient accès à cette fonctionnalité. Donc à partir de là, soit vous êtes chanceux et python apparaît dans le ruban dans le menu formules. S'il n'apparaît pas, soyez patients.

 

python dans excel ruban

Si cela apparaît, c'est bon vous êtes prêt à coder dans vos feuilles de calcul.

Quelle version de python et quels packages disponibles pour python dans Excel ?

Dans mon installation de python dans Excel, la version de python disponible est la 3.9.16.

Concernant les packages disponibles, de nombreux packages du répertoire d'Anaconda sont disponibles. Néanmoins, certains manquent à l'appel (par exemple pandas-profiling, tensorflow...). Je pense que Microsoft publiera prochainement une liste complète et le processus d'ajout et de mise à jour. En terme de version, si on prend par exemple trois packages de référence, on a :

  • Pandas : version 1.5.3 qui est celle actuellement disponible alors que la dernière release est la 2.1.0 (https://pandas.pydata.org/) et celle du répertoire Anaconda est la 2.0.3 (https://anaconda.org/anaconda/pandas)
  • Numpy : version 1.23.5 qui est celle actuellement disponible alors que la dernière release est la 1.25 (https://numpy.org/)
  • Scikit-learn : version 1.2.1 alors que la dernière version est la 1.3.

Les packages disponibles sont extraits du répertoire Anaconda (sans prendre en compte les versions) : https://anaconda.org/anaconda/repo

Reste donc la question des mises à jour de ces différents packages.  En effet, Torch existe en version 2.0 par exemple alors que la version 1.12 est installée. Cela sera un point que les équipes de Microsoft et d'Anaconda devront nous expliquer.

Image
numpy
scikit-learn python

Comment coder en python dans Excel ?

C'est très simple. Dans n'importe quelle cellule, tapez =PY (et vous êtes dans une interface de développement python (très basique mais ça marche).

PY() python

Une fois que vous êtes dans la cellule, vous pouvez entrer votre code, créer vos DataFrame, construire vos graphiques. Il vous suffit de coder et d'utiliser CTRL+Entrée pour exécuter le code.

Le fonctionnement paraît simple et chaque fois que vous allez cliquer sur CTRL+Entrée, le code est envoyé vers le cloud Azure et exécuté.

Il faut vraiment voir chaque cellule comme une cellule d'un Jupyter Notebook, c'est la dernière ligne de la cellule dont le résultat sera affiché dans le classeur Excel.

Un premier exemple de création d'un DataFrame :

création dataframe excel

La création du DataFrame est très simple, le temps de traitement semble raisonnable même si ça irait beaucoup plus vite en local. J'ai testé une table de 20'000 lignes et 5 colonnes et le système ne réussit pas à terminer la création du DataFrame. Donc il vaut mieux se concentrer sur de petits jeux de données pour l'instant.

Lorsqu'on a créé un DataFrame, il existe un bouton à côté du PY de la barre de formule qui vous permet de le transformer en cellule Excel, comme dans cette animation :

cellule python en excel

On peut bien sûr insérer des graphiques matplotlib, des modèles scikit-learn ou de simples manipulations de DataFrame. J'écrirai de nouveaux articles avec des exemples concrets dans les prochaines semaines.

En conclusion, c'est un bon début

L'ajout de python dans Excel est une vraie avancée pour de nombreux utilisateurs en entreprise qui devrait permettre des gains de productivité importants. Microsoft a dû faire des choix pour cette première version et fera forcément des mécontents. Il faut garder en tête qu'il s'agit d'une béta qui va évoluer mais qui ancre un peu plus python dans l'écosystème Microsoft. En attendant une version stabilisée, je vous conseille d'essayer et de vous familiariser avec python.

Si vous voulez aller plus loin, nous proposons des sessions de formations python et pouvons vous proposer des formations sur mesure python dans Excel afin de gagner très rapidement en productivité. Contactez-nous vite et inscrivez-vous à notre newsletter pour suivre les dernières avancées de la data.

Partager cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.