Monsieur Excel
Pour tout savoir faire sur Excel !

29 janvier 2009

Liste des 255 caractères

Pour obtenir la liste des 255 caractères d’une police, vous pouvez utiliser Excel avec le modèle ci-dessous où l’on a recopié partout la formule =car($A2+B$1) :

On voit ainsi que le code de « A » est 65 et que celui de « a » est 97. Cela se vérifie aisément en entrant dans une cellule =code("A") pour obtenir 65, ou =car(65) pour obtenir « A ».

Remarque – La formule engendre un rectangle pour tous les codes auxquels ne correspond pas un symbole typographique précis. Seuls les 31 premiers (soit 2^5-1) et le 127ème (soit 2^8-1) caractères sont toujours représentés par un rectangle, quelle que soit la police.

24 janvier 2009

Mes formations de mars 2009

Vous trouverez ci-dessous la liste des formations que je propose pour le mois de mars. Chacune de ces formations est limitée à huit participants, avec un ordinateur par personne. Vous pourrez télécharger la description de ces formations en cliquant sur leur intitulé dans le bandeau droit :

La modélisation du risque (Crystal Ball) : le vendredi 6 mars 2009.

Découverte de Visual Basic (2 jours) : jeudi 5 et lundi 10 mars 2009.

Modélisation avec Excel (2 jours) : mercredi 4 et jeudi 12 mars 2009.

Transition optimisée vers Office 2007 : le mercredi 11 mars 2009.

Le séminaire Transition optimisée vers Office 2007 permet aux cadres passant d’Office 2003 ou Office XP à faire – dans les meilleures conditions – la transition vers Office 2007.

En effet, l’ergonomie d’Office 2007 est complètement différente de celle des versions antérieures, avec la disparition des menus et des barres d’outils. Quand on passe à 2007, si l’on n’y a pas été préparé, on perd énormément de temps à rechercher telle ou telle commande. Grâce à cette journée de formation, vous apprendrez à basculer efficacement vers Excel 2007, Word 2007 et Powerpoint 2007.

Les trois premières formations sont organisées en association avec la société EuroDécision (cf. référence dans le bandeau droit du blog).

Pour la première fois, cette formation sera assurée par un MVP Excel (cf. message du 8 janvier).

19 janvier 2009

La représentation d'une matrice

Nous avons déjà vu que, quand on crée une formule matricielle avec la combinaison [Ctrl]-[Maj]-[Entrée], Excel met automatiquement des accolades autour de la formule. Si, en revanche, on entre ces accolades à la main et que l’on valide simplement la cellule, cela ne marche pas. Dans la notation matricielle d’Excel, il faut donc des accolades, mais pas n’importe comment…

Nous avons constaté – dans notre message du 12 janvier, que la zone de critères, dans une fonction BD…(),ne pouvait pas être directement entrée sous forme matricielle.

Dans la copie d'écran ci-dessus, en revanche, il n’y a pas de problème. Les colonnes A, B et D ne contiennent que du texte ; les formules de E1 à E3 sont reproduites en F1 à F3, et celle de E4 dans la zone de texte débutant en A7.

Remarque 1 – Les formules des cellules E1 et E2 servent à tirer au hasard la ligne (de 2 à 4) et la colonne (de 1 à 2) pour vérifier facilement avec [F9] le bon fonctionnement des formules.

Remarque 2 – Nous constatons que les cellules E3 et E4 affichent toujours le même résultat : il est donc équivalent de faire référence au bloc A1:B4 ou à son contenu {"Nom"."Montant";"Lerouge".639,1;"Leblanc".227,8;"Lebleu".881,75} actuel.

Nous voyons bien dans cet exemple comment Excel représente une matrice : les lignes sont séparées par des « ; » et les colonnes par des « . », et toute matrice est ainsi décrite ligne par ligne.

15 janvier 2009

Et une cinquième solution…

Il y a quatre jours, j’ai oublié de vous indiquer une cinquième solution, qui utilise une fonction de bases de données.

Il était d’ailleurs naturel de ne pas y penser car cette solution requiert l’utilisation de deux cellules supplémentaires, ce qui en fait une solution moins esthétique. Mais je vous la montre quand même à titre comparatif…

Il suffit, comme nous le faisons en A13 avec la formule reproduite en B13, d’utiliser la fonction bdsomme() avec la zone de critères en D1:D2.

Notons d’ailleurs que, outre D1:D2 qu’il a fallu ajouter, il nous a aussi fallu mettre des titres de colonne mais, ceux-là, je ne les compte pas vraiment car ils auraient probablement de toute façon été présents dans un modèle réel.

Remarque – Il est intéressant de noter que – cf. A14 avec sa formule en B14 –, si l’on remplace la référence à D1:D2 par la valeur réelle de ce bloc de deux cellules, on obtient une erreur, même si l’on valide la formule comme matricielle. On ne peut donc pas couper à l’utilisation physique de deux cellules pour la zone de critères.

12 janvier 2009

Quatre façons d’arriver au résultat

Nous avons déjà montré à plusieurs reprises qu’il y avait souvent plusieurs façons de résoudre un problème donné dans Excel. Illustrons-le ici sur un exemple simple : nous souhaitons obtenir le total de la colonne B pour toutes les personnes dont le nom débute par « Lo » :

La solution somme(si(…))

La première solution consiste à utiliser une formule matricielle, donc validée avec [Ctrl]-[Maj]-[Entrée]. Notons dans ce cas que la formule en A12, dont le texte est copié en B12, marche bien alors que celle de la cellule A13 affiche un résultat nul.

La solution somme.si(…)

La fonction somme.si a l’avantage de fonctionner avec une validation simple par [Entrée]. La formule de la cellule A14 (texte en B14) est refusée sur le plan de la syntaxe par Excel. Avec somme.si, c’est la formule de la cellule A15 qui est acceptée et donne le bon résultat.

La solution sommeprod(…)

Cette solution aussi se satisfait d’une validation simple. Notez en A16 et A17 la nécessité de multiplier par « 1 » ou par « -- » pour convertir un vecteur formé de valeurs VRAI et FAUX en vecteur de 1 et de 0.

Remarque 1 – Il est sympathique de découvrir que l'on peut ainsi utiliser les jokers "?" ou "*" dans des tests d'égalité.

Remarque 2 – Ce qui est intéressant aussi avec tous ces exemples, c’est que – selon la fonction utilisée – c’est soit A1:A10="Lo*" qui fonctionne, soit gauche(A1:A10;2)="Lo" mais jamais les deux à la fois !

08 janvier 2009

Le programme MVP de Microsoft

Le programme MVP (Most Valuable Professional) a été créé en 1993 dans le but d’identifier – pour différents logiciels – des personnes présentant deux caractéristiques :
● ces personnes possèdent une expertise reconnue du logiciel en question
● ces personnes fournissent une aide bénévole aux utilisateurs du logiciel

Une présentation intéressante du programme MVP est disponible en anglais sur le site de Microsoft Australie à l’adresse suivante : www.mvps.org/about/.

Pour une présentation en français, vous pouvez consulter le site de Microsoft France à l’une des adresses suivantes :
mvp.support.microsoft.com/?LN=fr
mvp.support.microsoft.com/gp/mvpexecsum

Si je vous parle de ce programme, c’est aussi parce que je voulais partager avec vous la joie que j’ai eue en recevant il y a quelques jours le mail suivant :
Cela me permet de rejoindre un club très fermé puisqu’il n’y a que trois autres Excel MVPs en France.

Je n’irai pas jusqu’à émuler Groucho Marx qui déclarait : « Je ne m’inscrirai jamais à un club qui m’accepterait comme membre ! ».

J’accepte cette distinction avec plaisir et j’essaierai de continuer à vous prodiguer informations et conseils sur Excel même si, parfois, le souci de pondre sur ce blog une à deux pages originales tous les quatre jours se révèle une tâche difficile…

04 janvier 2009

Ce nombre est-il bien premier ?

Puisque nous en sommes aux premiers jours de l'année, intéressons-nous pour une fois aux nombres premiers !

Les nombres premiers ont toujours fasciné les mathématiciens. De nombreux programmes ont été écrits pour vérifier si un nombre est ou non un nombre premier. C’est en particulier un cas intéressant à traiter pour illustrer la mise en œuvre de programmes récursifs.

Avec Excel, il n’est pas nécessaire d’écrire un programme pour cela. La formule suivante, que j’ai trouvée sur le site de Chip Pearson, à l’adresse www.cpearson.com/, tient en une seule cellule et fait tout le travail.

Cette formule miracle, entrée en B1, et recopiée ensuite dans les colonnes B, E, H et K, est une formule matricielle, donc validée avec [Ctrl]-[Maj]-[Entrée]. La voici :
=SI(OU(A1=1;A1=2;A1=3);"Premier";SI(ET((MOD(A1;LIGNE(INDIRECT("2:"&A1-1)))<>0));"Premier";""))

Le principe de cette formule est qu’un nombre n est premier quand tous les restes des divisions par les nombres de 2 à n-1 sont non nuls.

Remarque – Notons l’utilisation astucieuse des fonctions ligne et indirect, grâce auxquelles la formule matricielle fonctionne car elle s’applique bien à un vecteur.

Selon l’auteur, cette formule fonctionne jusqu’à la valeur 268.435.455, soit 2^28-1. Si quelqu’un parmi nos lecteurs peut nous expliquer pourquoi dans un commentaire, j’aimerais bien le savoir, et j'aimerais aussi savoir si cette limite demeure avec Excel 2007 !