Monsieur Excel
Pour tout savoir faire sur Excel !

28 février 2018

Modélisation : temps de développement

J’ai commencé à développer des modèles pour les entreprises au début 1970, donc il y a plus de 45 ans. Diplômé de l’ENSIMAG, j’étais alors étudiant au MIT, pour un Ph.D. (doctorat) en recherche opérationnelle. J’ai pour cela créé ma première société de conseil avec mon directeur de thèse quand j’étais encore étudiant. Toutes ces années de conseil représentent une certaine expérience :)

En plus de 45 ans, j’ai développé plus de 1.000 modèles, pour plus de 100 entreprises, dans plus de 10 pays. Au début en Fortran et en assembleur, puis sur Visicalc (le premier tableur, en 1979), Multiplan (à partir de 1982) et enfin – depuis 1985 – exclusivement sur Excel.

Ce qui m’a toujours frappé, c’est l’écart phénoménal que l’on peut constater entre des modèles créés par monsieur tout-le-monde et des modèles réellement performants : un modèle efficace est développé bien plus rapidement, se calcule sensiblement plus vite et occupe beaucoup moins de place en mémoire. Un modèle efficace représente donc une situation de win-win-win par rapport à un modèle lambda !

Le tableau ci-dessous illustre quelques écarts entre les temps demandés pour un développement en interne et ceux que j’ai proposés en devis forfaitaire (et que j’ai tenus).


Notez l’excellente performance d’EdF : avec son écart représentant seulement un facteur 4, EdF est la société où j’ai trouvé le plus petit écart avec mon propre temps de développement.

Chaque fois que je me suis trouvé en concurrence avec d’autres sociétés de conseil dans le cadre d’un appel d’offres, mon devis a toujours été entre 3 et 10 fois moins cher que celui du second moins-disant (je ne parle même pas des autres).

Quand un modèle est développé plus rapidement, il est non seulement plus économique mais aussi « meilleur » ! En effet, si un modèle est développé en 3 jours, il a bien plus de chances de coller à la réalité et aux besoins que s’il avait été développé en 6 mois, temps durant lequel la situation que l’on modélise va évoluer et rendre par conséquent le modèle plus ou moins obsolète dès sa sortie.

Il m’est même arrivé une fois qu’un client – l’Institut Géographique National (IGN) en la matière – vienne me voir après que deux des plus grandes sociétés de conseil françaises aient déclaré que leur problème ne pouvait pas être modélisé. Il s’agissait d’un modèle devant proposer le matin, en fonction de la carte météo, quels avions devaient partir faire quelles missions, à quels endroits, en se ravitaillant si nécessaire dans quels aéroports, en embarquant quels appareils d’enregistrement, et ce avec quel équipage…

Pour ceux qui aimeraient savoir comment j’ai modélisé cela (ou qui voudraient tout simplement apprendre plein d’autres choses sur la vraie modélisation, celle qui fait gagner de l’argent aux entreprises), il y a un chapitre de mon livre « Comprendre et utiliser les modèles », aux Editions d’Organisation, qui est entièrement consacré à ce modèle. Pour acquérir un exemplaire de cet ouvrage, adressez un chèque de 35 € à mon ordre, en adressant la lettre à mon intention, à Logma SA – 12 rue d’Anjou – 78000 Versailles. Si vous commandez de l’étranger ou avez besoin d’une facture, contactez-moi par mail : 
thiriez@hec.fr

22 février 2018

Simulation de dés (e)

La simulation avec Crystal Ball

Le modèle de lancement de dés que nous avons développé dans les derniers articles nous a montré comment monter une simulation stochastique avec Excel. Il nous a aussi permis de découvrir les pièges liés au mode de calcul d’Excel.

Même pour un habitué d’Excel, la construction de ce très simple modèle de simulation demandera entre 15 et 30 minutes, macros comprises. Et il lui aura fallu bien connaître Excel, et son mode de calcul, pour déjouer tous les pièges.

Avec un add-in de simulation probabiliste, la construction d’un tel modèle prendra moins d’une minute et – en prime – vous donnera accès à de multiples autres résultats : statistiques, graphes,…

Il y a une dizaine d’add-ins de simulation probabiliste sur le marché, depuis les add-ins gratuits jusqu’aux deux leaders du marché, Crystal Ball et @risk. Pour de nombreuses raisons, expliquées dans un document que je peux vous mailer si vous me le demandez, Crystal Ball est clairement le meilleur des deux.

C'est donc Crystal Ball, que je distribue depuis plus de 20 ans, et dont j’ai francisé plusieurs versions. C'est aujourd'hui l'outil le plus utilisé au monde pour faire des simulations probabilistes.

Exemple d'utilisation de Crystal Ball

Nous voyons, dans la copie d’écran ci-dessous, le modèle très simple réalisé avec Crystal Ball.

On entre 0 en A1, et la formule =A1 en A2.
On définit l’hypothèse A1 comme une loi discrète uniforme allant de 1 à 6.


On définit A2 comme prévision – il suffit pour cela de lui donner le nom « Tirage ».
Et, enfin, on lance la simulation en cliquant dans le bouton « Démarrer ».

En 4 secondes, on a effectué 10.000 itérations, on a des graphiques et des statistiques détaillées permettant d’analyser ces résultats en détail.

En conclusion, il a fallu moins d’une minute au total pour créer le modèle, simuler 10.000 lancements de dés, et obtenir tous les résultats graphiques et statistiques.

Exemples de réalisations

Avec Crystal Ball, j’ai développé plus de 100 modèles de simulation probabiliste pour des entreprises, dont voici quelques exemples :
  • Aéroports de Paris : Simulation du système de tri des bagages de Roissy
  • Aéroports de Paris : Simulation du déplacement des piétons dans une aérogare
  • Arianespace : Simulation des conséquences des pannes envisageables sur les 30 lanceurs Ariane
  • Caisse des dépôts : Simulation d’un gros projet en équipements routiers
  • Electricité de France : Simulation des incidents possibles sur la durée de vie d’une centrale
  • Sociétés de péage : Simulation d’une gare de péage et des files d’attente à chaque porte
  • Start-ups : Business plans pour diverses start-ups
Pour en savoir plus sur la simulation probabiliste, je ne peux que vous conseiller le livre « La modélisation du risque », que j’ai publié aux Editions d’Organisation. Il est normalement vendu – avec tous les fichiers du livre, donc de nombreux modèles Excel intéressants – à 45 €.

14 février 2018

Simulation de dés (d)

Une macro pour la simulation...

Il est un peu fastidieux de devoir modifier à la main, chaque fois que l’on souhaite relancer une simulation ou revenir en mode normal, le statut de calcul : itératif ou pas, automatique ou non, …

D’autant plus que la commande « Options Excel » n’est pas d’un accès immédiat…

Avec les deux macros représentées ci-dessous, nous pouvons automatiser le processus et, au choix, réinitialiser ou lancer la simulation.

Il suffit à présent d’un clic sur le bouton adéquat pour effectuer l’opération désirée.


09 février 2018

Simulation de dés (c)

Dans l’article précédent, nous expliquions qu’Excel avait la particularité – lors du calcul d’un classeur – de n’effectuer que les calculs qui, selon lui, étaient nécessaires.

Il y a une autre chose fondamentale, concernant le calcul par Excel, qu’il faut savoir. C’est qu’Excel ne peut pas calculer toutes les cellules à la fois, il faut bien qu’il procède par ordre. Et cet ordre est le suivant :
  • Excel calcule ligne par ligne, du haut vers le bas ;
  • dans chaque ligne, Excel calcule de gauche à droite.
Bien entendu, quand les formules l’y obligent, Excel est un peu obligé d’aller voir ailleurs pour les évaluer, mais cela lui complique la tâche.

Ceci explique qu’un modèle où chaque formule ne dépend que de cellules placée au-dessous d’elle et/ou à sa gauche se calcule plus vite qu’un modèle où cette règle n’est pas respectée.

Reprenons notre dernier modèle :


Quand nous débutons le calcul de l’itération n°10 en calculant la ligne n°1, toute la partie du modèle ci-dessus placée en dessous, c’est-à-dire l’ensemble des lignes 2 à 7, se trouve encore en l’état de l’itération n°9. Donc le compteur en B3 est toujours à 9. C’est pour cela que le pourcentage en F2 – et celui en F1, mais on ne le voit pas ici car il est nul – est obtenu en divisant la valeur de la colonne E par 9.

Quand le calcul passe à la ligne n°3, B3 passe à 10 et les pourcentages de F3 à F6 sont tous justes.

Quand le calcul passe à la ligne n°4, B4 passe à 3, mais ce dé est ignoré car le test en E2 pour vérifier si l’on avait obtenu un 3 a déjà été calculé. On perd donc le dixième dé quand celui-ci est un 1, un 2 ou un 3 car, dans ces cas, le dixième test en E1, E2 ou E3 ne peut s’effectuer.

Le remède est donc tout simplement de déplacer le bloc D1:F7 d’au moins 3 lignes vers le bas de façon que, désormais, tous les calculs s’effectuent bien du haut vers le bas, et de gauche à droite.

Voici le résultat d'une nouvelle simulation :


Remarque – La morale de l’histoire est que, même si Excel – avec la fonction alea() et le calcul itératif – vous permet de créer un modèle de simulation stochastique (joli mot pour dire aléatoire), vous devez prendre un certain nombre de précautions pour être sûr que ce modèle obtienne des résultats exacts !

03 février 2018

Simulation de dés (b)

La clef du problème rencontré dans l’article précédent est la façon dont Excel procède lors d’un recalcul.

La formule de B4, celle qui tire le dé, est : =SI(B2=0;"";ENT(6*ALEA()+1)).

Pour éviter de perdre son temps, Excel essaye – lors d’un calcul itératif – de ne calculer que les cellules qui – selon lui – ont besoin d’être recalculées.

Quand il se trouve au début de l’itération n°2, Excel analyse la formule et raisonne ainsi :
  • B2 n’a pas changé depuis l’itération n°1…
  • le reste de la formule ne dépend d’aucune cellule, et donc n’a pas changé non plus
  • en conséquence, il n’y a aucune raison de se fatiguer à recalculer la formule !
Le remède est simple ! Pour que le dé se recalcule à chaque itération, il ne faut pas qu’il dépende de B2 mais plutôt d’une cellule qui – elle – change à chaque itération. Ce qui, heureusement pour nous, est le cas du compteur d’itérations :)

Et voilà la solution ! Changeons maintenant la formule de B4 en =SI(B3=0;"";ENT(6*ALEA()+1)).
Réinitialisons le tableau en mettant le drapeau à 0 et en faisant [F9]. Puis remettons le drapeau à 1 et lançons la simulation. Nous obtenons alors – par exemple – le tableau suivant :


Bon, il y a un net progrès, nous ne sommes plus en train de jouer avec un mafieux et son dé pipé !
Mais il reste quand même trois problèmes :
  • pourquoi les % en F1:F6 ne sont-ils pas tous des multiples de 10 % ?
  • le dernier dé – un 2 – n’a pas été pris en compte !
  • pourquoi n’y a-t-il pas un total de 100% en F7 ?
Nous vous donnerons les réponses à ces questions, et la parade à ces problèmes, dans le prochain article.