Classer des cellules par categorie

Salut a tous, je vous fourni un petit fichier dans lequel je souhaite associe une categorie pour chaque cellules d'une colonnes, selon un choix de categories dans une autre colonne. Je fais appel a vous car en procedant par "filtre elabore" le temps d'execution est devenu trop long. On m'a suggerer de faire l'inverse du filtre elabore: au lieu de trouver les donnees qui correspondent a un critere (par filtre elabore) , trouver le critere qui correspond a une donne. Notez que les criteres comprennent des "?" et des "*". J'imagine que cela doit etre fait en VBA, si c'est faisable!

Merci.

57categories.xls (17.50 Ko)

Bonjour

Avec une formule matricielle

Cordialement

58categories.zip (4.01 Ko)

Merci a toi! c'est ce que je voulais. Si tu permet, je te renvoi une partie de mon application exacte, qui comprend 3 colonnes de criteres. Je ne sais pas comment adapter ta formule pour ca.

Note que ce sont les cellules "equivalent" qui devrait etre mis dans la colonne B C D E. Certaines lignes ne comporte qu'un seul critere, j'imagine que je devrais mettre quelque chose comme : = "" dans les cellules vides.

31categories.zip (4.11 Ko)

Bonjour

Je ne comprends pas bien les critères 2 et 3, d'autant qu'il n'y a aucun exemple en colonne A

Un début avec les Critères1

Cordialement

32categories-2.zip (6.91 Ko)

Les criteres 2 et 3 sont des conditions qui doivent etre aussi ajouter au critere 1 pour la recherche. Par exemple en G8: le critere est : "tout ce qui commence par "CALL" et en H8 on ajoute la condition "ne doit pas avoir de virgule. Je veux donc que les donnees du tableau A qui correspondent a ces 2 criteres voit les cellules de BCDE rempli avec les equivalents.

Il faut donc que la formule mis dans les colonnes BCDE prennent egalement les colonnes H et I dans leur criteres de recherche. C'est faisable?

J'ai mis en jaune les lignes qui sont en erreur et les explications plus haut sont dans le fichier en bleu.

Merci de ta patience!

32categories-2.zip (7.05 Ko)

Bonjour

J'avoue que je suis dans les choux, mais c'est intéressant.

Il existe bien sur des solutions avec des colonnes intermédiaires, mais cela alourdirait considérablement le fichier.

Je garde cela sous le coude et je m'y remettrai Jeudi si d'ici là aucune autre solution (VBA par exemple) ne t'est proposée.

Cordialement

merci Amadeus. La premiere version que tu m'as envoye etait parfaite, c'est seulement l'ajout de 2 criteres aditionnelles qui est un plus gros defit. Comme je te l'ai dis, je fonctionnais auparavent avec des filtres elabores qui eux, acceptent plusieurs criteres mais c'etait rendu trop lourd. Ma nouvelle approche serais beaucoup plus directe. Il faudra cependant etre en mesure de prendre 3 criteres par recherche.

Merci pour l'effort, c'est aprecie!

J'ai l'impression que la solution a mon probleme passe par du code VBA, lorsqu'on veut etablir une recherche en fonction de criteres contenu dans 3 cellules. Je vous envoi un fichier avec une formule qui fonctionne en parti, en employant "rechercheV". Est-ce que le VBA serais plus approprie?

capucin

36categories-3.zip (7.12 Ko)

Salut Amadeus, je voulais t'informer que j'ai trouve le moyen d'adapter ta solution a mon application (recherche avec 1 seul critere). Il suffit de placer les criteres dans un certain ordre afin que ceux qui sont plus precis sois en premier ex.: "JP NZ* et JP * en deuxieme, de sorte que si la recherche ne trouve pas de correspondance pour JP NZ*, il choisira JP*.

Donc, tu n'as plus besoin de chercher a adapter ta formule pour 3 criteres.

Par contre, j'ai de la difficulte a comprendre ta formule pour la mettre correctement dans mon application: =INDEX(Cat;EQUIV(1;(NB.SI(LC(-1);Cat));0))

le "1" apres EQUIV veut dire quoi? Aussi, est-ce que rechercheV (que je comprend mieux aurais pu faire ?

Je te renvoi notre fichier.

capucin

32categories.zip (5.61 Ko)

Bonjour

L'explication est dans le fichier

Cordialement

45categories.zip (28.44 Ko)

C'est exactement ce que je voulais faire. Pour les explications, je regarderai ca en profondeur ce soir. J'imagine que je comprendrai mieux pourquoi je ne suis pas encore capable d'adapter ta formule a mon application finale! Entre-temps, bonne fin de journee!

Salut Amadeus, je crois avoir compris comment ca marche. Si c'est le cas, y aurais-t-il une erreur dans le petit bout de phrase: "renvoie le nombre de critères de la plage nommée Cat qui correspondent au texte en A2 "???

Est-ce qu'il aurais fallu dire: " renvoie le numero entre 1 a 9 du critere de la plage nommée Cat qui correspondent au texte en A2 "???

Peux-tu me confirmer cela,

Capucin

P.S. est-ce qu'on aurais pu classer les criteres par ordre croissant?

18categories-2.zip (28.45 Ko)

Bonsoir

Salut Amadeus, je crois avoir compris comment ca marche. Si c'est le cas, y aurais-t-il une erreur dans le petit bout de phrase: "renvoie le nombre de critères de la plage nommée Cat qui correspondent au texte en A2 "???

Est-ce qu'il aurais fallu dire: " renvoie le numero entre 1 a 9 du critere de la plage nommée Cat qui correspondent au texte en A2 "???

Peux-tu me confirmer cela,

P.S. est-ce qu'on aurais pu classer les criteres par ordre croissant?

1) Disons "renvoie la position du critère de la plage nommée Cat qui correspond au texte en A2" donc le 9 indique le critère en 9ème position dans la plage.

Ce que dans l'audit de formule, correspond au 1 qui est en 9ème position.

2) La réponse est assurément non car si JP* se trouve en premier dans la plage tout ce qui commence par JP (donc JPZ,* - JP NZ,* - JP NC,* - etc) sera occulté par le premier critère répondant à la recherche JP* qui répond à l'ensemble des autres.

Cordialement

Merci infiniment pour les eclaircissement.

Je classais par ordre croissant, mais j'avais changer manuellement la position des criteres comme JP*. J'aurais du classer par ordre decroissant! Tu as vraiment l'oeil pour avoir vu les subtilites comme ca!

Je devrais etre capable de transferer les formules vers mon applications.

Amadeus, j'aurai de la difficulte jusqu'au bout, lol: ma formule ou le nom du tableau ne marche pas. J'ai fait un audit de formule comme tu me l'as montre et il semblerait que l'erreur serais ici: ...;NB.SI(L4C9;#VALEUR!));0))

pourtant ma formule semble etre du meme format que la tienne et le nom "liste" est bien encadre lorsque j'applique la formule:

=INDEX(liste;EQUIV(1;(NB.SI(LC(-1);liste));0))

Bonjour

Faute d'avoir le fichier, dis-moi dans quelle colonne se trouvent mes critères et donnes moi la définition du nom Liste.

Cordialement

Salut, quelqu'un m'a suggerer de faire "f2" puis "ctr+shift+enter" et de copier la formule sur toute la zone. Cette facon de faire a finalement reveiller toute mes formules de la colonne 2. Qu'est-ce qui se passe lorsqu'on fait cette procedure?

J'ai deceler une petite erreur, regarde les cellules que j'ai mis en jaune (JP *), il semble que la fonction recherche ne trouve pas la bonne ligne. La formule de la colonne 2 avec "=index..." trouve! Recherche emploi t-il un algorithme qui nous dejou? L'ordre du tableau de recherche est-il bon et lorsque je le change, ca peut causer des problemes pour la formule de la colonne 2 qui emploi "Cat"?

18forum-8.zip (28.21 Ko)

Bonjour

On peut faire avec une autre formule en colonnes C, D, E et F

Cordialement

18forum-8.zip (30.65 Ko)

C'est parfait! donc, je n'ai plus besoin d'avoir la formule en colonne 2 puisque tu semble avoir integrer une partie de cette formule dans les colonnes 3 4 5 6 et l'objectif de tout ca c'etait de generer les resultats (colonne 2 3 4 5)

=DECALER($H$1;EQUIV(1;(NB.SI($A5;Cat));0);COLONNE()-2)

Est-ce qu'on peut conclure que NB.SI fait une meilleure recherche que rechercheV?

21forum-8.zip (30.65 Ko)

Bonjour,

Tu ouvres plusieurs fils de discussion pour le même sujet.

https://forum.excel-pratique.com/excel/message-d-erreur-n-a-t27866.html

Cela fera plusieurs solutions (si les miennes fonctionnent), mais cela n'aide pas ceux qui répondent.

A+

Rechercher des sujets similaires à "classer categorie"