Your SlideShare is downloading. ×
Utilisation solveur excel
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Utilisation solveur excel

2,250
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,250
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
61
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Utilisation du solveur dans Excel I. INTRODUCTION Excel inclut un solveur de programmation mathématique conçu par Frontline Systems pour Microsoft. Ce solveur permet de définir et résoudre des problèmes d'optimisation linéaires ou non-linéaires. Les variables peuvent être réelles, entières ou binaires. La fonction-objectif facultative peut être minimisée, maximisée ou atteindre une valeur-cible. Il faut savoir que ce solveur est bridé à 200 variables. Le nombre de contraintes est illimité pour les PL, mais limité à 100 pour les PNL, sauf pour les contraintes simples de bornes sur les variables, comme x ≤ 3. Frontline Systems vend des versions non limitées qui se substituent à la version bridée offerte avec Excel, voir leur site web http://www.frontsys.com. Un historique et des détails sur le fonctionnement interne figurent dans l'article : D. Fylstra, L. Lasdon, J. Watson, A. Waren, Design and use of the Microsoft Excel solver, Interfaces, volume 28, n° 5, pages 29-55, 1998. Le solveur n'est pas toujours présent dans les menus. Vérifiez dans le menu Outils si le choix Solveur est visible. Sinon, il faut l'installer avec le choix Macros complémentaires. Ensuite, un clic sur Outils/Solveur fait apparaître la boîte Paramètres du solveur : Cette boite permet de définir les cellules de la feuille Excel qui correspondent à la fonctionobjectif (Cellule-cible à définir), aux variables (Cellules variables) et aux contraintes (Contraintes). On peut choisir le type d'optimisation : maximiser (Max), minimiser (Min) ou trouver une solution de coût égal à une valeur donnée (Valeur). Il est possible de choisir d'autres paramètres de résolution avec le bouton Options. En cliquant sur Résoudre, les valeurs des variables et de la fonction-objectif apparaissent dans les cellules correspondantes. – Page 1
  • 2. II. PARAMETRES DU SOLVEUR La cellule-cible, unique, doit contenir une formule qui lie, directement ou indirectement, les variables pour définir la fonction-objectif. Elle est facultative : si elle est absente, le solveur cherche une solution vérifiant toutes les contraintes, ce qui permet de résoudre des systèmes d'équations linéaires ou non-linéaires. Les cellules variables sont définies par une liste de cellules ou de plages, séparées par des points-virgules, par exemple B1:B4; C1:C4; E8. Elles ne doivent pas contenir de formules et il est conseillé de les initialiser à zéro. Les contraintes sont du type {cellule | plage} opérateur {constante numérique | cellule | plage | formule}, les accolades avec barres verticales désignant des choix exclusifs. L'opérateur est =, <=, >=, ent ou bin. Rappelons qu'il ne peut pas y avoir d'opérateurs de différence ou d'inégalité stricte en programmation mathématique, à cause des problèmes de précision. Pour une plage de n cellules, une contrainte du type plage opérateur {constante | cellule | formule} équivaut à n contraintes dans lesquelles chaque cellule de la plage est comparée au second membre. Une contrainte peut avoir deux plages de même dimension : elle équivaut à n comparaisons entre les cellules de même rang des deux plages. B4 <= 6 B4:B5 <= C5 B4:B5 = C6:C7 B4 <= 3*SIN(C4)+2 B4 inférieure ou égale à 6 B4 et B5 inférieures à C5 B4 inférieure ou égale à C6 et B5 inférieure ou égale à C7 B4 inférieure ou égale à 3.sin (C4) + 2 L'opérateur bin permet de spécifier qu'une cellule ou une plage doivent être binaires. L'opérateur ent sert à définir des cellules ou plages entières. Les cellules concernées doivent évidemment être des variables. Pour ces deux opérateurs, le solveur met par défaut binaire et entier dans les seconds membres. Pour ent, on peut cependant préciser une valeur maximale. B4 bin binaire B4:B5 ent entier B4:B5 ent 6 B4 est binaire (le mot binaire est ajouté par défaut) B4 et B5 sont entières (le mot entier est ajouté par défaut) B4 et B5 sont entières et inférieures ou égales à 6. En cliquant sur le bouton Options du solveur, on peut spécifier que les variables sont positives ou nulles par défaut et dans ce cas on n'a pas besoin de taper les contraintes de positivité. Une variable peut aussi intervenir dans plusieurs contraintes : B4 ent 6 B4 >= 2 B4 est un entier inférieur ou égal à 6 et supérieur ou égal à 2 On voit que le solveur n'autorise des formules que dans le second membre des contraintes. Les formules pour les premiers membres des contraintes et la fonction-objectif doivent être définies dans des cellules Excel et lier des variables entre elles. Le solveur se contente donc d'appeler Excel quand il veut récupérer les valeurs de ces formules. Une conséquence est qu'il ne peut pas savoir si un modèle est linéaire. On doit le lui dire dans les options, en cochant la case Supposé linéaire. Sinon, le solveur utilisera par défaut un algorithme très lourd pour le cas non-linéaire! – Page 2
  • 3. La possibilité d'utiliser des plages dans les contraintes est très puissante : elle permet de créer des blocs de contraintes similaires au lieu d'entrer une contrainte séparée pour chaque cellule des plages. Mais pour cela, il faut se plier à la logique de présentation d'Excel (feuilles rectangulaires de cellules), ce qui est souvent contraignant. Il faut donc toujours bien réfléchir à la disposition de votre PL (objectif, contraintes, variables, formules), en regroupant si possible les composants en plages, pour faciliter la définition du modèle avec le solveur et avoir une présentation plus lisible et agréable! La démarche de conception et les principales fonctions du solveur vont être illustrées sur un problème de production de ciments. En cas de difficultés, consultez l'aide générale d'Excel, mot-clé Solveur, et les aides disponibles dans la boite Solveur et son sous-menu Options. Le rôle des différents paramètres du sous-menu Options est expliqué en section VII. Un classeur SOLVSAMP.XLS fourni avec Excel contient d'autres exemples utiles de modèles. III. PRODUCTION DE CIMENTS – VERSION SIMPLE Une usine produit 2 ciments rapportant 50$ et 70$/t. Pour 1 t de ciment 1, il faut 40 mn de four et 20 mn de broyage. Pour 1 t de ciment 2, 30 mn et 30 mn. Four et broyeur sont disponibles 6h et 8h par jour. Quelles quantités faire chaque jour pour maximiser le bénéfice ? Ce problème peut se modéliser avec un PL avec deux variables continues : Max 50.x1 + 70.x2 40.x1 + 30.x2 ≤ 360 20.x1 + 30.x2 ≤ 480 x1, x2 ≥ 0 → maximisation du profit → disponibilité du four → disponibilité du broyeur → quantités non négatives ! Créer une feuille Excel et définir les cellules suivantes, en affichant les formules avec CTRL + accent grave ou CTRL + # selon les PC. On a choisi B3 et B4 pour les variables, B5 pour le profit, B6 et B7 pour les contraintes. Prendre l'habitude d'initialiser les variables à 0. Définir le PL avec le menu Outils/Solveur, en remplissant la boîte comme suit. Aller dans le champ Cellule cible et taper B5 ou mieux, pour éviter les erreurs de cellules, cliquer sur la cellule B5 de la feuille de calcul : le nom de cellule est copié automatiquement dans le champ. Vérifier que le sens d'optimisation est bien Max. Allez sur Cellules variables et tapez la liste B3;B4 ou la plage B3:B4, ou encore sélectionnez ces deux cellules dans la feuille de calcul. Enfin, définir les contraintes, en cliquant sur Ajouter pour chaque contrainte. – Page 3
  • 4. Cliquer sur Résoudre : le solveur résout le PL. On peut ensuite garder les résultats dans la feuille ou remettre à zéro. Si on garde les résultats, il faudra remettre les variables à 0 à la main pour refaire une résolution. Sauvez votre travail : le modèle est enregistré avec la feuille. IV. PRODUCTION DE CIMENTS – VERSION GENERIQUE La formulation précédente est criticable à cause d'une mauvaise séparation modèle-données : Les coefficients des contraintes et de l'objectif sont dans des formules de la feuille. Les valeurs des seconds membres sont dans le modèle défini par la commande Solveur. Il faut ajouter une contrainte dans le modèle pour chaque nouvelle ressource. Il faudra donc modifier des formules ou le modèle si des valeurs numériques changent dans les données ou si on ajoute des ciments ou des ressources. Nous allons voir une formulation dite générique, qui sépare au maximum les données du modèle. Plus facile à modifier, elle est basée sur les caractéristiques suivantes d'Excel et du solveur : Excel et le solveur permettent de définir des plages de cellules, comme B3:B4, B3:C4. La fonction Excel SOMMEPROD permet de faire des produits scalaires de 2 plages. Excel permet de copier des formules contenant des références relatives et absolues Le solveur peut comparer une plage à une constante ou 2 plages de même taille. – Page 4
  • 5. Préparer la feuille suivante. Entrez les données : coûts, consommations de ressources par ciment et disponibilités des ressources. Mettre les variables B5 et C5 à 0. Pour le profit total E4, taper la formule = SOMMEPROD (B4:C4; B5:C5). Pour l'utilisation du four E8, taper =SOMMEPROD (B8:C8; $B$5:$C$5). Avec la poignée de recopie, copier la formule dans E9 où elle devient = SOMMEPROD (B9:C9;$B$5:$C$5). Si on n'avait pas mis une référence absolue (indiquée par des dollars) pour la plage des coûts B5:C5, les 5 auraient été changés en 6! Avec cette présentation bien conçue, la définition du modèle est très facile : les variables forment une plage, et les deux contraintes d'utilisation de ressources sont définies avec une seule comparaison entre deux plages. Cliquer sur Options et cocher Modèle supposé linéaire : le solveur va utiliser l'algorithme du simplexe, sinon il utilise un algorithme général de programmation non linéaire, beaucoup plus lent. Cliquer aussi sur Supposé non-négatif : ainsi, on peut omettre les contraintes de positivité des variables comme dans le premier modèle. Sinon, on pourrait les définir avec une seule plage : B5:C5 >= 0. Enfin, cliquer sur Résoudre, on obtient les résultats page suivante. On obtient évidemment les mêmes résultats qu'avec le premier modèle mais leur présentation dans la feuille Excel est plus lisible. De plus, on peut changer les données sans toucher aux formules et au modèle. – Page 5
  • 6. Il est aussi possible de donner des noms plus parlants aux cellules. Par exemple, sélectionner E4, taper ProfitTotal au lieu de E4 dans la case Nom du menu principale (à gauche de la case la formule) puis appuyez sur Entrée : ceci renomme la cellule. De même, sélectionnez les plages B5:C5, E8:E9 et G8:G9 pour les renommer en Productions, Utilisations et Limites. Ouvrir la boîte solveur : la cellule cible est devenue ProfitTotal, la plage de variable est devenue Productions, et la contrainte s'écrit Utilisations <= Limites. On peut aussi taper ces noms dans le solveur, s'ils ont été définis au préalable. Hélas, il semble y avoir un bug dans la transmission des noms de cellules au solveur : très souvent, ce dernier remet dans le modèle les plages spécifiées pour les variables, même si des noms plus parlants leur ont été donnés. V. EXEMPLE D'EXTENSION DU MODELE Par exemple, ajoutons un ciment 3 de profit 80, nécessitant 50 minutes de four et 25 de broyage, plus une ensacheuse disponible 5 h/j. Les 3 ciments consomment respectivement 55, 35 et 40 minutes d'ensacheuse par tonne. Les modifications sont assez simples : Insérer une colonne devant la colonne D pour le nouveau ciment. Ajouter une ligne à la fin pour l'ensacheuse. Etendre le SOMMEPROD du profit total (maintenant dans F4) pour inclure le ciment 3. Faire pareil pour le SOMMEPROD de l'utilisation de la 1ère ressource. Avec la poignée de recopie, copier cette formule dans les autres utilisations. Dans le solveur, augmenter la plage de variables pour inclure le ciment 3 (variable D5). Sélectionner la plage de contraintes, cliquer sur modifier et l'étendre au ciment 3. – Page 6
  • 7. On pourrait évidemment limiter les nombres à 2 décimales en changeant leur type de cellule par défaut (Standard) en type Nombre. Attention : si vous avez défini des noms comme Productions pour la plage B5:C5, il faut les redéfinir avec le menu Insertion/Nom/Définir. La boîte de dialogue qui s'affiche liste les noms définis dans la feuille Excel. En cliquant sur un nom, on peut le supprimer ou modifier la plage de cellules qu'il désigne. Ces modifications seraient les mêmes si le PL avait 100 ciments et 50 ressources! Les modifications seraient considérables avec le premier modèle, avec un risque énorme d'erreur. VI. TYPES DE PROGRAMMES MATHEMATIQUES Un programme mathématique est un problème d'optimisation d'une fonction de plusieurs variables (fonction-objectif), en présence de contraintes. Pour bien utiliser le solveur et ses paramètres, il faut savoir qu'il existe les trois grands types de programmes définis ci-dessous. Programmes linéaires continus (PL) Les variables sont des réels, la fonction-objectif et leurs contraintes sont toutes linéaires. Dans ce cas, les contraintes définissent un polyèdre dont un des sommets correspond à la solution optimale. Le solveur d'Excel peut résoudre de grands PL (avec des centaines de variables) grâce à l'algorithme du simplexe, qui se contente de construire une suite de sommets du polyèdre menant à l'optimum, sans jamais entrer à l'intérieur. Programmes linéaires en nombres entiers (PLNE) Ce sont des programmes linéaires à variables entières. Les PL en 0-1 sont des cas particuliers de PLNE avec des variables binaires : il s'agit en général de variables de décision. En général, les PLNE sont très difficiles à résoudre, car l'optimum entier est souvent à l'intérieur du polyèdre défini par les contraintes du PL relaxé (PLNE sans les contraintes d'intégrité des variables) : l'algorithme du simplexe n'est plsu valable. Les variables entières doivent être définies par des contraintes d'intégrité dans le solveur. Cliquer sur Ajouter une contrainte, sélectionnez la variable ou la plage de variables entières et sélectionnez Ent ou Bin dans le type de comparaison (là où on utilise =, <= ou >= d'habitude). Le solveur utilise une méthode arborescente (branch-and-bound) basée sur l'algorithme du simplexe. Ce dernier est appliqué au PL relaxé, c'est-à-dire sans contraintes d'intégrité. Si l'optimum obtenu est entier, on a trouvé l'optimum du PLNE, fin. Sinon, on a en général une majorité de variables à valeurs entières et une minorité de variables fractionnaires. Le solveur choisit une des variables fractionnaires et construit deux sous-problèmes. Par exemple, si une variable xj qui doit être entière vaut actuellement 2.3, le solveur construit un sous-problème en ajoutant la contrainte xj ≤ 2 et un autre en ajoutant la contrainte xj ≥ 3. Dans le cas d'une variable binaire, la séparation est encore plus simple : le solveur force xj à 0 ou bien à 1. Les séparations successives en sous-problèmes construisent une arborescence qui peut contenir un nombre énorme de nœuds. En plus, le solveur applique l'algorithme du simplexe en chaque nœud (sous-problème). Bien que des tests permettent d'éliminer une bonne fraction des nœuds, il faut s'attendre à des temps de résolution importants avec les grands PLNE, à partir de quelques dizaines de variables entières ou une centaine de variables binaires. – Page 7
  • 8. En général, un PL en 0-1 est plus facile à résoudre qu'un PLNE avec le même nombre de variables. Si seulement certaines variables sont entières, on a un PL mixte comme le problème de localisation d'entrepôts. A nombre de variables égal, un PL mixte est plus facile qu'un PLNE ou PL en 0-1. Il existe cependant quelques cas de PLNE faciles : les problèmes de flots et le problème d'affectation. La raison est mathématique : les sommets des polyèdres de ces problèmes ont toujours des coordonnées entières et l'algorithme du simplexe va donc trouver un optimum entier. On peut s'en persuader en résolvant un problème d'affectation sans préciser que les xij sont binaires : le solveur trouve bien un optimum avec des variables à 0 ou 1. Si on a précisé que les variables doivent être binaires, ce n'est pas grave : le solveur lance sa méthode arborescente, mais comme elle débute par une application du simplexe au PL relaxé, l'optimum entier va être trouvé aussitôt, à la racine, sans développement d'une arborescence. Programmes non-linéaires (PNL) Au moins une des contraintes ou l'objectif sont non-linéaires. Ces problèmes sont très difficiles car les expressions peuvent contenir n'importe quoi : des sinus, des logarithmes etc. Le domaine des solutions réalisable peut avoir une structure complexe et contenir de nombreux optima locaux, à l'intérieur ou sur la frontière. Contrairement au cas linéaire, il n'existe aucune condition générale pour dire si un optimum local est un optimum global. Les solveurs commerciaux donnent au mieux, quand ils convergent, un optimum local. L'optimalité locale peut être détectée grâce à des conditions comme celles de Kuhn-Tucker. Les PNL avec des fonctions non partout différentiables (valeurs absolues par exemple) sont ingérables. Le minimum pour espérer résoudre est que les expressions des contraintes et de l'objectif soient des fonctions continues et différentiables. Les PNL les moins difficiles sont ceux majoritairement linéaires, par exemple avec seulement une contrainte ou bien un objectif non-linéaire. Les PNL convexes (contraintes convexes formant donc un domaine convexe + minimisation d'une fonction convexe ou maximisation d'une fonction concave) ont une propriété intéressante : tout optimum local est également global. Par exemple, on peut avoir un PL dans lequel on remplace l'objectif linéaire (bénéfice à maximiser) par un bénéfice non-linéaire à cause d’un tarif dégressif selon la quantité, par exemple une fonction racine carrée. Dans ce cas, les contraintes linéaires définissent un polyèdre, qui est un ensemble convexe, et on doit maximiser une fonction concave : le problème est moins difficile. Dans le cas général, on peut avoir des difficultés de résolution avec seulement une dizaine de variables, si les contraintes et l'objectif sont tous non-linéaires et varient rapidement. Le plus souvent, on a soit une convergence très lente, soit une convergence rapide mais sur un mauvais optimum local ou sur un point qui n'est même pas un optimum local. Les PNL peuvent être si difficiles à résoudre numériquement qu'on a toujours intérêt à les convertir en PL (linéarisation), quand c'est possible. Par exemple, on trouve dans la littérature des techniques pour remplacer une fonction non-linéaire par une fonction affine par morceaux. Cette technique nécessite une nouvelle variable par morceau. Bien que le PL résultant ait plus de variables que le PNL initial, il est en général bien plus facile à résoudre. – Page 8
  • 9. Le solveur utilise un algorithme qui calcule une suite de points convergeant vers un point vérifiant les conditions de Kuhn et Tucker (quand il y arrive). Le point initial est à l'intérieur du domaine défini par les contraintes. En chaque point, une direction de déplacement basée sur le gradient de la fonction-objectif est calculé. La longueur du déplacement est calculée de façon à ne pas sortir du domaine. Les calculs sont en général très lourds à cause des expressions non-linéaires et des déplacements qui peuvent être nombreux et très petits. VII. ROLE DES OPTIONS DU SOLVEUR Dans 90% des cas, les modèles en systèmes industriels sont des PL ou PLNE. Les seuls options utiles dans ce cas sont alors les suivantes. Modèle supposé linéaire. Cochez cette case si vous êtes certain que votre modèle est linéaire car le solveur n'a pas directement accès aux formules d'Excel et ne peut pas détecter par luimême la linéarité. Si la case est cochée, le solveur lance l'algorithme du simplexe (variables continues) ou la méthode arborescente (si PLNE). Supposé non-négatif. Tous les solveurs commerciaux (CPLEX, XPRESS, LINGO) supposent par défaut que les variables sont positives ou nulles. Cette convention est bien pratique car on n'a pas besoin de définir les contraintes correspondantes. C'est en général le cas dans les problèmes industriels (quantités à produire etc.). On a donc intérêt à cocher cette case. Sinon, dans un problème de minimisation de coût d'extraction de minerais, le solveur pourrait mettre les quantités produites à moins l'infini : on remettrait le minerai au fonds des puits. Itérations. Il s'agit du nombre d'itérations du simplexe (PL) ou de nœuds construits dans l'arborescence (PLNE). La valeur par défaut est trop faible pour les grands problèmes : il vaut mieux mettre 1000 à condition d'avoir une protection en limitant le temps de calcul. Si vous conservez une valeur trop faible, vous le saurez quand la fonction "Résoudre" dira qu'elle n'a pas réussi à trouver un point optimal. Temps max. Il est prudent de conserver la valeur par défaut (100 secondes) pour éviter des durées trop importantes. En effet, il est impossible de stopper le solveur en cours de calcul sans planter Excel dans le gestionnaire des tâches accessible dans CTRL+ALT+DEL. Augmenter cette valeur seulement si elle s'avère insuffisante. Mise à l'échelle automatique (scaling). Le simplexe peut avoir des problèmes numériques en présence d'un mélange de très petits et de très grands nombres. Ceci peut souvent être évité en rédigeant le modèle : ne pas mélanger des coûts en MEuros et en centimes par exemple. Sinon, en cochant la case, le solveur fait des changements de variables et de repère, uniquement pendant la résolution, pour corriger ces disparités. Précision et Tolérance. Il est déconseillé de modifier ces valeurs qui permettent au solveur de savoir s'il respecte bien une contrainte d'égalité (précision) ou si une valeur de variable peut être considérée comme entière (tolérance). A cause des nombreux calculs avec la précision limitée de la machine, les calculs ne sont jamais parfaitement exacts. Ceci peut s'observer en affichant un grand nombre de décimales dans un PLNE ou PL en 0-1 : les variables 0-1 au moment de l'arrêt peuvent valoir 0.0001 ou 0.9999 par exemple. Dans de tels cas, il faut bien entendu considérer ces valeurs comme des 0 ou des 1 dans l'interprétation des résultats. – Page 9
  • 10. Afficher le résultat des itérations. Peut parfois être utile pour faire un exercice, en montrant les itérations successives du simplexe, ou pour voir si l'algorithme converge ou diverge en cas de difficultés numériques. Les autres paramètres ne servent que pour les PNL : Convergence. Par défaut 0.0001. L'algorithme pour les PNL stoppe quand la variation (en valeur absolue) de la fonction-objectif sur les 2 derniers points calculés devient inférieure ou égale à cette valeur. La valeur conditionne donc la précision du résultat : ne pas modifier, sauf si l'objectif prend des valeurs très élevées ou au contraire très petites. Estimation. Mettre quadratique pour les PNL difficiles : estimation des gradients et contraintes par des approximations du second ordre, plus précises. Dérivées. Mettre central pour les PNL difficiles (estimation de dérivée à droite et à gauche). Recherche. Mettre Newton sauf si le PC a une petite mémoire : convergence plus rapide. VIII. FONCTIONS EXCEL UTILES Excel offre plusieurs fonctions très utiles, dont certaines sont peu connues, qui facilitent les opérations sur des plages de cellules et donc la définition des programmes linéaires. Dans ce qui suit, plage désigne une plage de cellules à une dimension comme A1:A5 (un vecteur) ou à deux dimensions comme A1:E5 (une matrice). VIII.1 Fonctions non-matricielles SOMME (plage) : calcule la somme des nombres d'une plage donnée. SOMME.SI (plage1; critère; plage2) : calcule la somme des nombres de plage2 si la cellule de même rang dans plage1 vérifie le critère. Si plage2 est omise, les nombres de plage1 vérifiant le critère sont cumulés. Exemple : SOMME.SI (A1:A3; ">0") fait la somme des éléments strictement positifs de la plage. SOMME.SI (A1:A3; C1; B1:B3) fait la somme des éléments de B1:B3 tels que les éléments de même rang dans A1:A3 soient égaux à C1. SOMMEPROD (plage1; plage2; …; plagen) : calcule la somme des produits entre éléments de même rang dans les plages données. Pour deux plages à une dimension, cette fonction équivaut à un produit scalaire. VIII.2 Opérations matricielles Excel offre aussi des opérations dites matricielles. Ce nom est assez mal choisi, il s'agit en fait de fonctions qui renvoient un tableau de résultats. Les formules avec ces opérations sont refusées si elles ne sont pas entre accolades. Exemple : la formule A1:A5+B1:B5 est refusée, il faut taper {=A1:A5+B1:B5} pour qu'Excel comprenne qu'on veut la somme terme à terme des deux vecteurs. On peut aussi taper la formule sans accolades et finir avec CTRL+MAJ+ENTREE au lieu de ENTREE : Excel ajoute automatiquement les accolades. – Page 10
  • 11. Voici 2 exemples générant des tableaux temporaires mais renvoyant à la fin un seul nombre : {=SOMME (A1:A5*B1:B5)} : équivalent à SOMMEPROD (A1:A5; B1:B5). {=SOMME (A1:A5^2)} : calcule la somme des carrés de la plage A1:A5. Une formule matricielle peut renvoyer une plage. Par exemple, si on veut dans B1:B3 les éléments de la plage A1:A3 multipliés par 3, il faut sélectionner à la souris la plage souhaitée pour le résultat (B1:B3), taper =3*A1:A3 puis CTRL+MAJ+ENTREE. Si on déplace le curseur sur les cellules B1 à B3, Excel indique la même formule matricielle {=3*A1:A3}. Pour retrouver toutes les cellules d'une même formule matricielle, il faut cliquer dans une des cellules contenant la formule, puis utiliser le menu Edition/Atteindre/Cellules et choisir Matrice en cours : Excel sélectionne alors toute la plage concernée, ce qui permet de modifier ou d'effacer la formule matricielle. Quelques fonctions matricielles utiles : PRODUITMAT (plage1; plage2) : calcule le produit matriciel des deux plages, qui doivent être de dimensions compatibles. TRANSPOSE (plage) : transpose la matrice donnée. Par exemple, pour faire un produit de matrices entre un vecteur-colonne de 5 éléments, A1:A5 et une matrice 5x5 C1:G5, il faut transposer : PRODUITMAT (TRANSPOSE (A1:A5); C1:G5). INDEX (plage; n° ligne; n° colonne) : renvoie l'élément situé à l'intersection de la ligne et de la colonne données, ce qui permet de faire des indiçages comme en C, Delphi ou Visual Basic. Si la plage a une seule ligne (colonne), l'indice ligne (colonne) est facultatif. Si l'indiceligne (colonne) est égal à zéro, la fonction renvoie la colonne (ligne) complète spécifiée par l'autre indice, mais il faut une formule matricielle. Exemple : INDEX (A1:A8; 3) renvoie le contenu de la troisième cellule de la plage A1:A8, c’est-à-dire A3. – Page 11