Voir le flux RSS

Pierre Fauconnier

Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple)

Noter ce billet
par , 11/12/2017 à 21h37 (551 Affichages)
Wouah. Plus de 600 vues de mon billet sur SOMME.SI.ENS en moins d'une semaine...

Elles vous intéressent donc, les fonctions SOMME.SI.ENS, MOYENNE.SI.ENS, NB.SI.ENS (et aussi MAX.SI.ENS et MIN.SI.ENS réservées à la version OFFICE365)?

Dans mon précédent billet, je vous disais comment créer les critères lorsque vous voulez prendre en compte les lignes pour lesquelles des valeurs sont différentes de la valeur du critère.

Aujourd'hui, nous allons voir comment tenir compte de valeurs partielles dans les colonnes. Il n'est pas possible, avec SOMME.SI.ENS, d'exprimer un critère qui travaille sur le résultat d'un traitement d'une donnée. Ainsi, vous ne pourrez pas, sans colonne de construction, calculer la somme des ventes d'un jour de la semaine par rapport aux dates de vente, car il est tout simplement impossible d'exprimer un critère sur cette valeur avec les fonctions XXX.SI.ENS (sauf, je le répète, à créer une colonne supplémentaire). C'est cependant possible avec une autre fonction d'Excel, SURPUISSANTE, mais je vous parlerai bientôt!

Il est toutefois possible de réaliser un traitement sur une partie textuelle de la valeur d'une cellule, grâce à l'utilisation des jokers, et cela sans devoir passer par des colonnes intermédiaires

Pour cela, regardons le tableau suivant. C'est un tableau reprenant des ventes d'articles, dont les codes sont composés de trois parties:
  • les trois premiers chiffres renseignent la catégorie;
  • la suite de six chiffres donnent le numéro de l'article;
  • les deux derniers chiffres renseignent la couleur.


Nom : 2017-12-11_192249.png
Affichages : 97
Taille : 172,1 Ko

Il serait intéressant de pouvoir additionner les ventes pour une catégorie, c'est-à-dire pour une suite précise des trois premiers caractères. Pour réaliser cela, nous allons utiliser le joker *, qui remplace x caractères à partir d'où on le place dans le critère de recherche. Comme pour les opérateurs de comparaison dont je parlais précédemment, il convient de placer le joker à l'intérieur du critère.
Nom : 2017-12-11_195114.png
Affichages : 72
Taille : 39,2 Ko

Et bien évidemment, comme je ne peux pas saisir la catégorie en dur, c'est-à-dire en constante, je la déporte dans une cellule et je concatène le joker avec cette valeur grâce à l'opérateur & (concaténer = assembler des chaines de caractères entr'elles NDLR). Le critère "003*" signifie donc tout ce qui commence par 003.
Nom : 2017-12-11_195213.png
Affichages : 73
Taille : 26,5 Ko



Bien sûr, il est possible de placer le joker au début, au milieu ou à la fin du critère. C'est ainsi que si je souhaite obtenir le total des ventes relatives à des articles de couleur 02, j'utiliserai le joker * au début du critère. Le critère "*02" signifie donc tout ce qui se termine par 02.
Nom : 2017-12-11_195919.png
Affichages : 70
Taille : 19,6 Ko

Imaginons que, dans le code de l'article, le premier chiffre du groupe du milieu identifie le fournisseur. Si je souhaite obtenir le total des ventes pour le fournisseur 7, je vais devoir remplacer les quatre premiers caractères par n'importe quoi puis préciser le 7 puis demander n'importe quoi derrière. Pour remplacer un caractère à un endroit précis, j'utiliserai le joker ? qui remplace une fois un caractère. Dès lors, mon critère s'exprimera en utilisant les deux jokers au sein de la même chaine. "????7*" signifie quatre caractères puis le signe 7 puis zéro, un ou plusieurs caractères. L'erreur fréquente réside ici dans l'omission de * à la fin du critère. Attention: "????7" veut dire une chaine de cinq caractères qui se termine par 7. On voit ainsi que l'on peut aussi travailler sur la longueur du critère.
Nom : 2017-12-11_200609.png
Affichages : 67
Taille : 19,5 Ko

Comme on le voit, les propriétés sont déjà étonnantes. Il nous reste cependant quelques problèmes. Dans des cas un peu tordus, il se pourrait que l'un des jokers fasse partie du code. Si on eu l'idée "originale" de faire commencer les articles sans catégorie par un astérisque, comment trouver la somme des articles qui commencent par ce caractère? Eh bien, on va tout simplement indiquer à Excel que l'on utilise la caractère en tant que tel et pas en tant que joker en le faisant précéder du signe ~ (ça ne s'invente pas...). Le critère "~**" signifie qui commence par un astérisque avec n'importe quoi derrière. Le signe ~ est donc un caractère d'échappement, c'est-à-dire qu'il inhibe la signification particulière du caractère qu'il précède.
Nom : 2017-12-11_201337.png
Affichages : 67
Taille : 16,9 Ko

Et comme celui qui a inventé les codes articles a été particulièrement futé (suivez mon regard ), il a décidé que ce qui se terminait par le signe ~ signifiait que la couleur n'était pas précisée ou que cette info sur la couleur était sans objet. Il va donc falloir préciser à Excel que le ~ du critère est bien là comme caractère et pas comme caractère d'échappement. il faudra donc le doubler. Le critère "*~~" signifie donc n'importe quel code qui se termine par ~.
Nom : 2017-12-11_201843.png
Affichages : 67
Taille : 18,9 Ko

Et voilà! On a fait le tour. Ci-dessous un petit tableau récapitulatif.
Nom : 2017-12-11_202222.png
Affichages : 67
Taille : 67,9 Ko

Vous voyez que ces fonctions permettent pas mal de choses. A vous de jouer. Dans un prochain tuto, nous envisagerons une généralisation du traitement conditionnel des données grâce une fonction magique... (Chuut. Ce sera peut-être dans la hotte du Père Noël... )

Bon travail avec Excel et à bientôt pour un nouveau truc & astuce...
Miniatures attachées Fichiers attachés

Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Viadeo Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Twitter Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Google Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Facebook Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Digg Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Delicious Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog MySpace Envoyer le billet « Excel: SOMME.SI.ENS et les jokers pour la recherche partielle (avec en prime le fichier d'exemple) » dans le blog Yahoo

Mis à jour 11/12/2017 à 22h56 par Pierre Fauconnier

Catégories
Excel , MS Office , Trucs & Astuces

Commentaires