Classer des clients en fonction du pays

Airone784

XLDnaute Occasionnel
Bonjour,

Voici mon problème avec le fichier en pièce jointe. J'ai des clients venant de pays différents et souhaite les classer.
Exemple dans la PJ : mon client Jean vient du Japon, je souhaite que Jean apparaissent en C3. Puis mon client Marc en C4. Idem pour les autres clients des autres pays.

Je voudrais passer par une formule pour faire cela sachant que ma liste de client peut augmenter.
Auriez-vous une idée de comment faire???

Merci pour votre aide.
 

Pièces jointes

  • client_pays.xlsx
    9.6 KB · Affichages: 33

Modeste

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Bonjour Airone784,

Avec une formule matricielle en A3
Code:
=SIERREUR(INDEX($H$1:$H$30;PETITE.VALEUR(SI($I$2:$I$30=A$2;LIGNE($I$2:$I$30));LIGNES($1:1)));"")
Valider avec Ctrl+Shift+Enter, puis recopier en bas et à droite
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Bonjour,
Une proposition en pj avec une formule matricielle à valider par ctrl + maj prov + enter en A3 puis recopier à droite et vers le bas.

Cordialement

Edit : Oups! même solution, Bonjour Modeste !
 

Pièces jointes

  • airone784.xlsx
    13.7 KB · Affichages: 21
  • airone784.xlsx
    13.7 KB · Affichages: 26
  • airone784.xlsx
    13.7 KB · Affichages: 21

Modeste

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Re,
Bonjour Gérard,
Salut Dugenou :D

@natorp: sous les versions antérieurs à XL2007, ça devait donner
Code:
=SI(ESTERREUR(INDEX($H$1:$H$30;PETITE.VALEUR(SI($I$2:$I$30=A$2;LIGNE($I$2:$I$30));LIGNES($1:1))));"";INDEX($H$1:$H$30;PETITE.VALEUR(SI($I$2:$I$30=A$2;LIGNE($I$2:$I$30));LIGNES($1:1))))
Toujours à valider avec Ctrl+Shift+Enter
 

Airone784

XLDnaute Occasionnel
Re : Classer des clients en fonction du pays

Re-bonjour à tous,

Merci pour vos solutions qui fonctionnent super bien. Par contre, je peine à comprendre la formule. Du coup (je suis exigeant, désolé) pouvez-vous me la décortiquer pour que je la comprenne bien????

Merci encore.
 

Dugenou

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Bonjour,
le coeur de la formule est
SI($I$2:$I$30=A$2;LIGNE($I$2:$I$30))
si on trouve le pays on renvoie le N° de ligne sinon Faux
Ensuite on appelle les valeurs renvoyées une par une en commençant par la plus petite :
PETITE.VALEUR(SI(...);LIGNES($1:1))))
où le lignes($1:1) va s'incrémenter de 1 en 1 quand on recopie vers le bas
Puis on renvoie le prénom en utilisant la fonction index (dont la zone doit impérativement commencer en ligne 1 puisque le SI renvoie un N° de ligne :
INDEX($H$1:$H$30;PETITE.VALEUR(SI(...))))
Enfin on empeche les valeurs d'erreur de s'afficher avec sierreur(...;"") ou si (esterreur(formule);"";formule)

Cordialement
 

Modeste geedee

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Bonsour® Airone784, Luc :rolleyes:
autre proposition sans Matricielle
mais nécessité de trier la colonne I

en A3 :
Code:
=SI((LIGNE()-2)<=NB.SI($I$2:$I$100;A$2);DECALER($H$1;LIGNE()-3+EQUIV(A$2;$I$2:$I$100;0););"")

étendre formule vers le bas et vers la droite autant que nécessaire...
 

Modeste

XLDnaute Barbatruc
Re : Classer des clients en fonction du pays

Re²,
Bonjour Modeste geedee :rolleyes:
Salut David :)
... quelle foule! ;)

En complément des explications fournies par Dugenou:
positionne-toi en A3 et dans la barre de formule, sélectionne cette portion de la formule: SI($I$2:$I$30=A$2;LIGNE($I$2:$I$30)).
La sélection réalisée, appuie sur la touche F9 du clavier. Tu vas voir apparaître une "matrice" (d'où le nom "formule matricielle") composée de FAUX (toutes les cellules de la plage I2:I30 dont le contenu est différent de "France") et, perdus au milieu de ces FAUX, quelques n° de lignes (4, 9 et 10)

Attention: la sélection dans la barre de formule, suivie d'un appui sur F9 doit être annulée à chaque fois (touche Esc) faute de quoi la partie de formule "évaluée" est remplacée par les valeurs, dans la formule. Par contre, tu peux sélectionner une autre portion et recommencer la même manip (pour autant que la portion sélectionnée soit "complète")
 

Airone784

XLDnaute Occasionnel
Re : Classer des clients en fonction du pays

Ok. donc du fait de se mettre en matricielle, excel teste toutes les cellules de la zone définie soit I2:I30. C'est bien ça ???
Super intéressante ces explications.

Merci aussi aux autres contributeurs qui m'apportent des solutions qui fonctionnent bien également.
 

Discussions similaires

Statistiques des forums

Discussions
312 033
Messages
2 084 806
Membres
102 674
dernier inscrit
Eloels