Monsieur Excel
Pour tout savoir faire sur Excel !

24 mars 2018

Auditabilité – Un exemple

Dans le dernier article, j’ai abordé le thème de l’auditabilité d’un modèle. C’est un critère important et qu’il ne fait en aucun cas sous-estimer. Plus d’une fois, j’ai été appelé au secours – comme consultant – par des clients qui avaient perdu tout contrôle sur un modèle important.

Une fois, avec la Caisse des Dépôts, je me suis retrouvé face à un modèle qui possédait des liens avec plusieurs fichiers Excel dont personne n’avait plus la trace et dont un certain nombre de cellules aboutissaient à des erreurs non traitées par le modèle. Le modèle était devenu totalement inexploitable.

Comment en était-on arrivé là ? Il s’agissait en fait d’un ensemble de projets routiers et autoroutiers financés ensemble par la Caisse des Dépôts, une banque allemande et une banque italienne. Suite aux manipulations sauvages dont il avait été l’objet de la part de cadres mal coordonnés de ces trois pays, le modèle était devenu totalement incontrôlable.

La mission que m’a donnée le client était double. En premier lieu, je devais entièrement nettoyer le modèle et le rendre de nouveau opérationnel. De plus, je devais garantir que toutes les formules du modèles respectaient bien le dossier contractuel de plus de 15 pages expliquant comment les trois banques se répartiraient les bénéfices ou pertes des opérations.

Dans d’autres entreprises, j’ai été parfois appelé à la rescousse parce qu’un modèle fonctionnait encore mais que son créateur avait quitté la société. Personne ne maîtrisant plus le modèle, ma tâche était de tout comprendre, puis de documenter et d’expliquer le modèle aux cadres de l’entreprise.

Le plus farfelu que j’aie eu à faire en matière d’audit de modèle – en 1970, donc bien avant Excel – était, pour une société de conseil américaine, de comprendre et documenter un logiciel d’optimisation des équipages dans les compagnies aériennes. L’auteur de ce programme avait été renvoyé par la société de conseil pour laquelle il l’avait réalisé en Fortran. Il s’est vengé en partant avec toute la documentation et en ne leur laissant que le code brut, des dizaines de pages de listing sans un seul commentaire.

Il réclamait 100.000 $ de compensation pour fournir la documentation. Comme je venais de faire une thèse de doctorat sur ce sujet et que j’avais moi-même réalisé un programme appliquant ma propre méthode, la société de conseil m’a fait appel pour débloquer cette situation. Ce qui a été fait en une semaine à raison de 12 heures de travail par jour, pour bien moins cher que la somme demandée…

Un exemple

Le petit exemple ci-dessous illustre bien le trade-off que l’on doit faire quelquefois entre l’auditabilité des formules et leur rapidité de calcul ou leur complexité.

Il s’agit d’afficher une étoile quand il manque 1 à 5 unités par rapport au stock minimum, 2 étoiles quand il en manque de 6 à 10, 3 étoiles de 11 à 15, et ainsi de suite.


La formule de C2 est la plus naturelle et la plupart des gens la comprennent sans difficulté.

La formule de D2 est plus compacte. Je constate souvent chez mes clients des cas de ce genre où l’on simplifie une formule en ôtant un si().

La formule de E2 est la plus courte et la plus performante, mais il y a de nombreux utilisateurs qui ne vont pas comprendre ce que le « +4 » fait dans la formule…

En évoluant de C2 à E2, on gagne progressivement en compacité et en efficacité de la formule, mais en perdant au niveau de l’auditabilité. C’est un dilemme fréquent en matière de modélisation.

Remarque – Sans connaître la fonction rept(), on aurait dû faire plus lourd encore avec une table ayant en colonne 1 des valeurs allant de 5 en 5 et en colonne 2 de 1 à n étoiles selon la ligne, le tout assaisonné d’un simple recherche() – dans le meilleur des cas – ou, pire encore, d’un index(equiv…)).


1 Commentaire(s):

  • Bonjour
    Concernant l'alternative avec la fonction recherche dans une table...
    Je suis complètement d'accord avec vous : elle est lourde, et sans aucun doute, complètement inadaptée pour une longue liste.
    Mais en matière de simplicité de lecture, de lisibilité et d'auditabilité, il me semble que l'on fait difficilement mieux.
    Et flexible en plus : on peut changer l'intervalle -passer de 5 à 10 par exemple- sans modifier la formule dans la colonne d'affichage des "*".
    Nous vivons dans monde de compromis... J'ai tendance à privilégier l'auditabilité sur la vitesse... question d'âge et de mémoire défaillante peut-être.
    Autre possiblité intéressante pour afficher un indicateur: les formats conditionnels, mais je n'en connais pas l'impact en terme de vitesse. Sans doute pas très performant.
    Cordialement
    jhbf
    PS : Votre blog est une mine de créativité... un vrai régal.

    By Blogger jhbf, sur 3:44 PM  

Enregistrer un commentaire

<< Accueil