Chapitre 4 : Fonctions logiques, statistiques et de recherches I. Fonctions logiques I.1. Fonction SI La fonction SI évalue une condition (Test logique). Si cette condition est vérifiée, c est la valeur dite Valeur_si_vrai qui s affiche. Si la condition n est pas vérifiée, c est la valeur dite Valeur_si_faux qui s affiche. =SI(Test_logique; Valeur_si_vrai ; Valeur_si_faux) Exemple : Calcul de la remise Une grande surface affiche à ses clients l annonce suivante : «Si le montant d achat est supérieur à 100,00dh, la remise est de 3% sinon pas de remise». En utilisant la feuille de calcul de la figure 1, calculez la remise pour chaque client.
Excel, Macros et langage VBA Figure 1 : Calcul de la remise en utilisant la fonction SI Sélectionnez la cellule dans laquelle vous voulez saisir la formule ; dans ce cas c est C2. Cliquez sur le menu Insertion puis Fonction. Dans la Catégorie logique, sélectionnez la fonction SI, puis cliquez sur OK. La fenêtre ci-dessous apparaît (figure 2) : 54 Figure 2 : Boite de dialogue de la fonction SI Dans la zone de saisie Test_logique, sélectionnez la cellule à tester (B2) puis tapez l opérateur de comparaison > puis 100. Tapez l expression souhaitée pour la zone de saisie Valeur_si_vrai, dans cet exemple il s agit de B2*3%.
Chapitre 4 : Fonctions logiques, statistiques et de recherches Tapez de la même manière la valeur souhaitée dans la zone de saisie Valeur_si_faux, dans ce cas 0. Validez la fonction par OK et recopiez-la vers le bas. La cellule C2 doit donc contenir la formule suivante =SI(B2>100; 3%*B2; 0). Sur le CD-ROM Les données des exemples de ce chapitre sont disponibles sur le CD-ROM de ce livre dans le classeur exemples\chapitre04.xls et leurs corrigés se trouvent dans le classeur exemples\corr_chapitre04.xls. I.2. Fonction SI imbriquée =SI(test_logique1; valeur_si_vrai; si(test_logique2; valeur_si_vrai; valeur_si_faux)) Exemple : Calcul de la remise (suite) La grande surface change l annonce de la remise comme suit : «Si le montant d achat est supérieur à 100,00dh, vous avez une remise de 3%. Si le montant est supérieur à 70,00dh vous avez une remise de 2% sinon pas de remise». En utilisant la feuille de calcul de la figure 3, calculez la remise pour chaque client. Figure 3 : Calcul de la remise en utilisant SI Imbriquée 55
Excel, Macros et langage VBA La cellule C2 (figure 3) contient la formule suivante : =SI(B2>100; 3%*B2; SI(B2>70; B2*2%; 0)). I.3. Fonction ET & OU =ET(valeur_logique1; valeur_logique2; valeur_logique3;.) =OU(valeur_logique1; valeur_logique2; valeur_logique3 ;.) La fonction ET renvoie vrai si tous les arguments sont vrais et elle renvoie faux si un seul argument ou plusieurs sont faux. La fonction OU renvoie vrai si un seul argument ou plusieurs sont vrais. Elle renvoie faux si tous les arguments sont faux. Exemple : Une société désire recruter un ingénieur qui répond aux critères suivants : Age<=35 Diplôme : ingénieur industriel (ing ind) Langue : Français Expérience >=3 ans Pour cela, elle a réalisé la feuille de calcul de figure 4. Figure 4 : Utilisation de la fonction ET Sélectionnez la cellule F2 (figure 4) dans laquelle vous voulez saisir la formule. 56
Chapitre 4 : Fonctions logiques, statistiques et de recherches Dans la Catégorie logique, sélectionnez la fonction ET, puis cliquez sur OK. La fenêtre ci-dessous apparaît (figure 5) : Figure 5 : Boite de dialogue de la fonction ET Introduire dans chaque valeur_logique une condition comme la montre la fenêtre ci-dessus. Validez la fonction par OK. Recopiez la formule vers le bas. La cellule F2 contient la formule suivante : =ET(B2<=35; C2="ing ind"; D2="Français"; E2>=3) La cellule G2 contient la formule suivante : =SI(F2=VRAI;"accepté";"non accepté") 57
Excel, Macros et langage VBA II. Les fonctions statistiques II.1. La fonction NB La fonction NB compte le nombre de cellules contenant des valeurs numériques. Les cellules contenant des textes sont ignorées. =NB(Valeur1; Valeur2; ) Exemple : Calculer le nombre de participants à l examen Figure 6 : Exemple d utilisation de la fonction NB La cellule B8 (figure 6) contient la formule =NB(B2:B6). II.2. La fonction NBVal La fonction NBVAL compte le nombre de cellules contenant une valeur que ce soit du texte ou numérique (elle compte le nombre de cellules qui ne sont pas vides). =NBVAL(Valeur1; Valeur2 ; ) Exemple : Calculer le nombre d étudiants 58
Chapitre 4 : Fonctions logiques, statistiques et de recherches Figure 7 : Exemple d utilisation de la fonction NBVAL La cellule B8 (figure 7) contient la formule =NBVAL(B2:B6). II.3. La fonction NB.VIDE La fonction NB.VIDE compte le nombre de cellules vides à l intérieur d une plage de cellules. =NB.VIDE(plage) Remarque : Les cellules contenant des formules qui renvoient " " (texte vide) sont comptées comme cellules vides pour la fonction NB.VIDE. Par contre, elles sont considérées comme cellules non vides pour fonction NBVAL. II.4. La fonction NB.SI La fonction NB.SI compte le nombre de cellules non vides répondant à un critère. =NB.SI(plage; critère) Exemple : Compter le nombre d étudiants ayant obtenu une moyenne inférieure à dix. 59
Excel, Macros et langage VBA Figure 8 : Exemple d utilisation de la fonction NB.SI La cellule B9 (figure 8) contient la formule =NB.SI(B2:B7;"<10"). III. Les fonctions de Recherche III.1. La fonction RECHERCHEV La fonction RECHERCHEV permet de localiser une donnée contenue dans une plage de cellule (matrice ou table) afin de l utiliser dans différents calculs. Elle recherche la valeur spécifiée dans la première colonne de la matrice, puis renvoie une valeur dans la même ligne à partir d une colonne spécifiée. =RECHERCHEV(Valeur_cherchée ;Matrice ;No_index_col) Valeur_cherchée est la valeur à trouver dans la première colonne de la matrice Matrice est une plage de données dans laquelle est exécutée la recherche de la valeur No_index_col est le numéro de la colonne de la matrice dont la valeur correspondante est renvoyée. 60
Chapitre 4 : Fonctions logiques, statistiques et de recherches Exemple : Calculer le taux de la remise en fonction du code de chaque article, pour cela vous disposer de deux tableaux l un pour les remises et l autre pour les résultats, voir la figure 9. Figure 9 : Exemple d utilisation de la fonction RECHERCHEV 1- Nommer la plage de cellule A9:B14 par Remise Cette plage (table) représente la matrice. 2- Cliquez sur la cellule D4. C est celle qui va contenir le taux de la remise en fonction du code de l article. Cliquez sur le bouton Insérer une fonction. 3- Sélectionnez la catégorie Recherche & Matrices puis, sélectionnez la fonction RECHERCHEV, cliquez ensuite sur OK. 4- Dans la zone de saisie Valeur_cherchée, sélectionnez la cellule A4. 5- Dans la zone de saisie Table_matrice, insérer le nom de la matrice, c est Remise. 6- Spécifier le numéro de colonne dans lequel se trouve la valeur à lire. Il s agit du taux de la remise qui se trouve dans la colonne 2 de la matrice. Tapez donc le chiffre 2 dans la zone de saisie No_index_col. 7- La zone de saisie valeur_proche reste vide. Cliquez sur OK. 8- Copiez la formule vers le bas. La cellule D4 doit donc contenir la formule suivante =RECHERCHEV(A4; Remise; 2). 61
Excel, Macros et langage VBA III.2. La fonction RECHERCHEH La fonction RECHERCHEH cherche une valeur dans la première ligne d une matrice (table ou plage de cellules) et renvoie la valeur de la même colonne à partir d une ligne spécifiée. Cette fonction fonctionne exactement comme la précédente. =RECHERCHEH(Valeur_cherchée; table_matrice; no_index_ligne) Exemple : Prenons le même exemple sauf que le tableau des remises est structuré en ligne. Figure 10 : Exemple d utilisation de la fonction RECHERCHEH La cellule D4 (figure 10) doit donc contenir la formule suivante : =RECHERCHEH(A4; Remise; 2). III.3. La fonction RECHERCHE La fonction RECHERCHE permet d effectuer des recherches dans tous les sens. =RECHERCHE (valeur_cherchée; Vecteur_recherche; Vecteur_résultat) 62
Chapitre 4 : Fonctions logiques, statistiques et de recherches Valeur_cherchée : C est la valeur cherchée. Vecteur_recherche : C est la plage de cellules dans laquelle on cherche la valeur. Vecteur_résultat : C est la plage de cellules dans laquelle on recherche l information. Remarque : Le vecteur de recherche doit obligatoirement être trié par ordre alphabétique, sinon la fonction ne retourne pas la bonne valeur. Il faut éviter d inclure les titres des colonnes lors de la sélection des plages de cellules servant de vecteur. Exemple : On cherche le prix unitaire d un article dont la référence est saisie dans la cellule C7. Figure 11 : Exemple d utilisation de la fonction RECHERCHE Valeur_cherchée : c est la cellule C7. Vecteur_recherche : c est la plage de cellules A2:A5. Vecteur_résultat : correspond à la plage de cellules C2:C5. La cellule C9 (figure 11) doit donc contenir la formule suivante : =RECHERCHE(C7;A2:A5;C2:C5). 63
Excel, Macros et langage VBA III.4. La fonction INDEX La fonction INDEX permet la recherche d une valeur dans un tableau (matrice) en fonction de ses coordonnées. INDEX(Matrice; no_ligne; no_col) Matrice : la plage de cellules dans laquelle la fonction effectuera la recherche. no_lig : la ligne de la matrice dont une valeur doit être renvoyée. no_col : la colonne de la matrice dont une valeur doit être renvoyée. Exemple : Rechercher le prix unitaire d un produit à l aide de ses coordonnées. Figure 12 : Exemple d utilisation de la fonction INDEX La cellule G4 (figure 12) contient la formule =INDEX(A2:C5; G2; G3). A2:C5 : plage de cellules dans laquelle la fonction effectuera la recherche. G2 : n de la ligne contenant les valeurs à afficher. G3 : n de la colonne contenant les valeurs à afficher (ici prix unitaire). III.5. La fonction EQUIV La fonction EQUIV recherche la position d une valeur dans une matrice. EQUIV(Valeur_cherchée; Matrice_recherche; Type) 64
Chapitre 4 : Fonctions logiques, statistiques et de recherches Valeur_cherchée : la valeur dont vous souhaitez obtenir la position. Matrice_recherche : la plage de cellules dans laquelle la fonction recherchera la position de la valeur_cherchée. Type : entrez 0 pour trouver la valeur exacte, 1 pour la valeur la plus élevée qui est inférieure ou égale à valeur_cherchée, -1 pour la plus petite valeur qui est supérieure ou égale à valeur_cherchée. Si l'argument type est omis, la valeur par défaut est 1. Exemple : Rechercher la position d un article saisie dans la cellule F1. Figure 13 : Exemple d utilisation de la fonction EQUIV Tapez la formule =EQUIV(F1; B2:B5; 0) dans la cellule F2 (figure 13). F1 : valeur recherchée. B2:B5 : plage de cellule dont laquelle F1 sera recherchée. 0 : recherche la valeur exacte. III.6. Fonction INDEX & EQUIV La fonction INDEX utilisée avec la fonction EQUIV permet la recherche de valeur dans une matrice. Exemple : Rechercher le prix unitaire en fonction de l article saisie dans la cellule F2. 65
Excel, Macros et langage VBA Figure 14 : Exemple d utilisation des fonctions INDEX et EQUIV La cellule F4 (figure 14) contient la formule suivante : =INDEX(A2:C5; EQUIV(F2; B2:B5; 0); 3). A2:C5: matrice de recherche. F2 : valeur recherchée. B2:B5 : plage de cellule dont laquelle la valeur de la cellule F2 sera recherchée. 0 : recherche la valeur exacte. 3 : n de la colonne contenant les valeurs à afficher (ici prix unitaire). La fonction EQUIV dans ce cas renvoie le n de ligne. 66