Logiciel
Excel et Power Query
Le classeur Power Query qui met quarante minutes
Trois choses expliquent presque toujours la lenteur. Deux se corrigent sans rien acheter. La troisième veut dire que le traitement doit sortir du classeur.
- Délai
- 1 à 2 semaines
- Réponse
- 48 h
Le blocage
Le classeur a commencé petit. Une requête vers un export, deux colonnes calculées.
Trois ans plus tard, il fait quatorze requêtes, il pèse quatre-vingts mégaoctets, et son rafraîchissement dure quarante minutes. Il faut le lancer avant la pause déjeuner. Une fois sur cinq, Excel ne répond plus et il faut tout reprendre.
Une seule personne sait comment il est construit. Elle n’ose plus y toucher.
Ce que fait déjà Power Query
Beaucoup, et souvent mieux que ce qu’on lui prête. Quand la source est une base SQL, Power Query sait pousser les filtres et les regroupements vers le serveur au lieu de tout rapatrier. Une requête qui plie correctement traite des millions de lignes sans effort.
Trois causes reviennent quand ce n’est pas le cas.
La première : le pliage est cassé. Il suffit d’une étape non traduisible, souvent une colonne personnalisée ou un tri placé trop tôt, pour que Power Query renonce et rapatrie toute la table avant de filtrer. Déplacez les filtres au plus près de la source et remontez les transformations lourdes après, le gain se compte parfois en dizaines de minutes.
La deuxième : la même source est lue plusieurs fois. Deux requêtes qui référencent une troisième la réexécutent chacune, et le fichier est relu autant de fois. Une mise en tampon au bon endroit, ou un remaniement des dépendances, corrige ce point.
La troisième : la source elle-même est lente. Un CSV posé sur un partage réseau saturé, ou un export du logiciel qui met déjà dix minutes à se produire. Là, aucun réglage Power Query ne vous sauvera.
Ce qu’il faut ajouter
Sortez le traitement du classeur.
Le même travail s’écrit dans un script qui tourne sur un serveur, la nuit ou toutes les heures. Il lit la source directement, applique les mêmes règles, et écrit le résultat fini : un fichier au format attendu, ou une table dans laquelle Excel vient piocher en une seconde.
Le classeur reste, et il ne sert plus qu’à afficher. Le rafraîchissement devient instantané parce qu’il n’y a plus rien à calculer à l’ouverture.
Le traitement ne dépend plus d’un poste allumé ni d’une personne présente. Il devient aussi lisible : la logique tient dans un fichier texte versionné, que deux personnes peuvent relire, au lieu d’un enchaînement d’étapes cliquées que personne ne peut auditer.
Qui le fait tourner
Une requête Power Query est du code, même si elle ne porte pas ce nom. Quelqu’un l’a écrite, souvent en apprenant en marchant, et souvent sans que ce soit son métier.
Demandez qui rafraîchit le classeur le lundi. Demandez ce qui se passe si cette personne est en congé la semaine où la source change de format.
La réponse est en général qu’on attend son retour. Un traitement qui attend le retour de quelqu’un est une habitude, pas un traitement.
Ce que ça coûte
Commencez par les corrections ci-dessus. Elles ne coûtent rien et elles suffisent dans un cas sur deux.
Si la lenteur vient de la source, ou si le fichier doit partir sans intervention humaine, comptez une à deux semaines, et le prix se chiffre sur le classeur. C’est le chantier le plus court parce que la logique métier existe déjà : elle est dans vos étapes Power Query, il s’agit de la traduire.
Envoyez le classeur en précisant d’où viennent les données. Je vous réponds sous 48 h, et si le problème se règle par un réglage, je vous le dis sans facturer.
Contact
Décrivez votre cas, en deux lignes.
Je vous réponds sous 48 h : faisable ou non, comment, et ce que ça coûte. Sans engagement.
- Une réponse écrite, pas un appel de découverte.
- Elle dit aussi quand ce n’est pas la peine.
- Pas de relance commerciale.
Et si
Si vous en avez plusieurs comme celui-là.
Un fichier ou un script monté par quelqu’un, que personne d’autre ne sait reprendre, c’est un cas. Cinq, c’est autre chose : votre activité dépend d’outils dont vous ne connaissez ni la liste ni l’état.
L’inventaire fait cette liste en trois jours, pour 3 500 €. Il dit ce qui est dangereux, et dans quel ordre s’en occuper.
Questions
Ce qui revient à chaque fois.
- Pourquoi vous donnez les corrections gratuitement ?
- Parce que dans un cas sur deux elles suffisent, et que vendre trois semaines de développement à quelqu'un qui a juste besoin de replacer un filtre serait malhonnête. Si ça suffit chez vous, tant mieux, et l'adresse reste la même pour le sujet suivant.
- Est-ce que Power BI ne réglerait pas tout ?
- Il règle la partie rafraîchissement et publication, et il ajoute une licence par utilisateur plus un moteur à administrer. Pour un fichier qui doit partir chez un client au format imposé, un script coûte moins cher et se maintient plus simplement. Pour du pilotage interne consulté par dix personnes, Power BI se défend très bien.
- Notre classeur contient des macros VBA en plus.
- Ça ne change pas le diagnostic. Le VBA se réécrit, et ce qu'il fait est en général plus simple que ce qu'on croit. Envoyez le classeur, les deux se regardent ensemble.