Tri en catégorie en fonction d'une liste de mots

Bonjour le Forum,

Je travail actuellement sur une base de données avec un gros effectif de personnes. Mon objectif est de trier cette liste de personnes en fonction du Domaine (DUM), du Sous-domaine (SDUM), de l'Emploi et du Métier auxquels ils appartiennent, pour les catégoriser (de 1 à 7) dans Catégorie.

Illustration :

ABCDEFGHIJKLMN
DUMSDUMUONNINOM-PRENOMEmploiMétierContratStatutDptAdresseCode postalSite de travailCatégorie
.......................................1 à 7
.......................................1 à 7

Pour cela, il y a certaines conditions a respecter pour trouver la bonne catégorie de chaque lignes :

  • SI DUM="ETAT MAJOR";"RACCORDEMENTS";"TERRITORIALITE" ALORS Catégorie = 3

SINON

  • SI DUM="OPERATIONS";"RACCORDEMENTS";"PATRIMOINE" ET Emploi ou Métier =Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =5

SINON

  • SI DUM="OPERATIONS";"RACCORDEMENTS";"PATRIMOINE" ET Emploi ou Métier Différent de Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =6

SINON

  • SI DUM="RELATIONS CLIENTS" ET Emploi ou Métier =Liste1 ALORS Catégorie =1

SINON

  • SI DUM="RELATIONS CLIENTS" ET Emploi ou Métier Différent de Liste1 ALORS Catégorie =2

SINON

  • SI Emploi ou Métier =Liste2 ALORS Catégorie =7

Je sais que l'explication peut paraître longue, mais j'ai voulu vous détailler au maximum pour que la compréhension soit la plus claire possible. Pour que cela soit plus facile, je vous transmet un fichier comme base de travail.

17categorie-v1.xlsm (13.10 Ko)

Je vous remercie d'avance de l'aide que vous pourriez m'apporter.

Bonjour,

j'ai constaté une anomalie dans tes critères

SINON

SI DUM="RACCORDEMENTS" ET Emploi ou Métier =Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =5

SINON

SI DUM="RACCORDEMENTS" ET Emploi ou Métier Différent de Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =6

SINON

SI DUM="RACCORDEMENTS" ET SDUM = "INGENIERIE" ALORS Catégorie =3

la dernière condition ne sera jamais vraie si les conditions sont vérifiées dans cet ordre. on aura soit 5 soit 6, mais jamais 3

bonjour

salut h2so4 au passage

pour moi il faut faire un tableau avec les DUM en ligne et les Emploi ou Métier et SDUM en colonnes (ou inversement si on veut)

on verra plus clair

et on pourra faire une formule (hem... pas sûr que je sache la faire )

amitiés

Bonjour,

Que de conditions …

Faudrait revoir la formulation des conditions

Exemple dans Dum tu écris si "Raccordement" mais en fait c'est uniquement si le mot raccordement apparaît dans la cellule

Par ailleurs :

SINON

SI DUM="RACCORDEMENTS" ET Emploi ou Métier =Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =5

SINON

SI DUM="RACCORDEMENTS" ET Emploi ou Métier Différent de Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =6

SINON

SI DUM="RACCORDEMENTS" ET SDUM = "INGENIERIE" ALORS Catégorie =3

celle ci remplit déjà une des deux conditions précédente ; Tu veux des formules plus que magiques

à mon niveau c'est pas possible

Si tu commences à faire des conditions c'est sur le même nombre de colonnes et pas un coup j'en prends 2 un coup j'en prends 3

Bonjour,

J'ai fait ça par formule :

=SI(A2="ETAT MAJOR";3;SI(ET(A2="OPERATIONS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur"));5;SI(ET(A2="OPERATIONS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur"));6;SI(ET(A2="PATRIMOINE";B2="AIS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur"));5;SI(ET(A2="PATRIMOINE";B2="AIS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur"));6;SI(ET(A2="PATRIMOINE";B2<>"AIS");3;SI(ET(A2="RACCORDEMENTS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur"));5;SI(ET(A2="RACCORDEMENTS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur"));6;SI(ET(A2="RACCORDEMENTS";B2="INGENIERIE");3;SI(ET(A2="RELATIONS CLIENTS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur"));1;SI(ET(A2="RELATIONS CLIENTS";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")="erreur"));2;SI(ET(A2="TERRITORIALITE";OU(SIERREUR(RECHERCHEV(F2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$A$2:$A$11;1;FAUX);"erreur")<>"erreur"));3;SI(OU(SIERREUR(RECHERCHEV(F2;TRI!$C$2:$C$6;1;FAUX);"erreur")<>"erreur";SIERREUR(RECHERCHEV(G2;TRI!$C$2:$C$6;1;FAUX);"erreur")<>"erreur");7;"Cette ligne n'appartient à aucune catégorie")))))))))))))

En revanche tu as des lignes qui ne rentrent dans aucune catégorie, par exemple les lignes patrimoine et infrastructure, comme tu voulais que ce soit égal à patrimoine. Les autres lignes ont l'air de se comporter normalement

Voici le fichier avec la formule :

Bonjour à vous deux,

Merci de votre réponse.

En effet H2so4, il y a un problème de priorité

  • SI DUM="RACCORDEMENTS" ET SDUM = "INGENIERIE" ALORS Catégorie =3

SINON

  • SI DUM="RACCORDEMENTS" ET SDUM Différent de "INGENIERIE" ET Emploi ou Métier =Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =5

SINON

  • SI DUM="RACCORDEMENTS" ET SDUM Différent de "INGENIERIE" ET Emploi ou Métier Différent de Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =6

Je pense que c'est plus logique comme ça.

@ jmd

Je ne peux modifier les colonnes en lignes dans mon fichier maître..

Bonjour,

Tu utilises des libellés incomplets (ou écrits différemment du classeur) et il y a en outre des ambiguïtés entre des libellés Liste1 et des mentions sur le tableau, et aussi sans doute des erreurs (CHED DE PROJET ?)...

Les conditions étant réunies pour ne pas pouvoir produire au premier jet les comparaisons souhaitées, il faut donc apporter toutes les précisions qui manquent et opérer les rectifications éventuelles dans le classeur, et boucler les conditions qui en l'état ne le sont pas (et au moins une est inversée...

NB- Rien ne remplace un table de décision pour définir des conditions de manière exhaustive. Je conseille d'en monter une qui te permettra de vérifier que tu prévois tous les cas et qu'il n'y a pas de contradictions.

Cordialement.

Bonjour Ausecour,

Merci de ta réponse, à vrai dire je ne m'attendais pas à avoir une formule vu la complexité du problème, mais plutôt un bouton programmable en VBA

La formule ne fonctionne pas correctement en effet.. Je vais reposer les conditions de l'énoncé et les simplifier.

Bonjour,

à vérifier,

Il y a des cas théoriques qui ne donnent pas de catégorie.

7categorie-v1.xlsm (22.56 Ko)

Re h2so4,

Ton fichier marche plutôt bien , j'ai constaté deux petite annomalies..

  • La catégorie 7 ne fonctionne pas bien pour trouver les mots de la Liste2
  • Et L'Ingénierie dans le domaine Raccordement ne bascule pas en catégorie 3...

Pour le reste c'est parfait.

re-Bonjour,

pour 1) je ne vois pas de problème, peux-tu montrer un exemple de cas qui ne donne pas le bon résultat ?

pour 2) c'est corrigé, il fallait comprendre SDUM contient INGENIERIE et non est égal à INGENIERIE.

Re,

Pour ces cas là (dans la colonne Emploi) :

  • ADJOINT CHEF AGENCE
  • ADJOINT AU DIRECTEUR
  • CHEF D'AGENCE
  • ADJT DIRECTEUR DELEGUE TERRITORIAL

Je devrais avoir la catégorie 7

Et pour les cellules qui contiennent "INGENIERIE" dans la colonne Emploi, je devrais avoir la catégorie 3

(je suis désolé mais je ne trouve pas ta correction)

Bonjour Ausecour,

Merci de ta réponse, à vrai dire je ne m'attendais pas à avoir une formule vu la complexité du problème, mais plutôt un bouton programmable en VBA

La formule ne fonctionne pas correctement en effet.. Je vais reposer les conditions de l'énoncé et les simplifier.

En fait je pensais que tu voulais une formule à la base... Du coup je me suis lancé, ce qui bloque dans la formule c'est que je pensais qu'il fallait une correspondance exacte, pas que ta cellule commence par infrastructure ou autre... du coup si ça commence par le mot, mais ne contient pas que ça, ça ne marchera pas, de plus tu as redéfinis tes priorités entre temps donc ça ne fonctionnera pas comme voulu...

Dommage...

Certains membres t'ont proposé une solution qui s'approche plus de ce que tu voulais, je les laisse continuer, bonne chance

Re,

Pour ces cas là (dans la colonne Emploi) :

  • ADJOINT CHEF AGENCE
  • ADJOINT AU DIRECTEUR
  • CHEF D'AGENCE
  • ADJT DIRECTEUR DELEGUE TERRITORIAL

Je devrais avoir la catégorie 7

pour moi tu as bien la catégorie 7,voir ligne 37 de ton fichier exemple. Si tu n'as pas 7 c'est qu'une autre condition plus prioritaire s'applique.

Et pour les cellules qui contiennent "INGENIERIE" dans la colonne Emploi, je devrais avoir la catégorie 3

(je suis désolé mais je ne trouve pas ta correction)

Pour ceci, je suppose que tu parles de la colonne SDUM et non de la colonne emploi, regarde les lignes 23 et 24 de ton fichier exemple

ps: la nouvelle formulation de ta demande, n'est pas correcte

cette condition

SI DUM="ETAT MAJOR";"RACCORDEMENTS";"TERRITORIALITE" ALORS Catégorie = 3

exclut les conditions suivantes pour le cas "RACCORDEMENTS"

SINON

SI DUM="OPERATIONS";"RACCORDEMENTS";"PATRIMOINE" ET Emploi ou Métier =Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =5

SINON

SI DUM="OPERATIONS";"RACCORDEMENTS";"PATRIMOINE" ET Emploi ou Métier Différent de Liste1 (un des mots de la liste qui est située sur la feuille TRI) ALORS Catégorie =6

6categorie-v1.xlsm (22.66 Ko)

Bonjour,

Tu utilises des libellés incomplets (ou écrits différemment du classeur) et il y a en outre des ambiguïtés entre des libellés Liste1 et des mentions sur le tableau, et aussi sans doute des erreurs (CHED DE PROJET ?)...

Les conditions étant réunies pour ne pas pouvoir produire au premier jet les comparaisons souhaitées, il faut donc apporter toutes les précisions qui manquent et opérer les rectifications éventuelles dans le classeur, et boucler les conditions qui en l'état ne le sont pas (et au moins une est inversée...

NB- Rien ne remplace un table de décision pour définir des conditions de manière exhaustive. Je conseille d'en monter une qui te permettra de vérifier que tu prévois tous les cas et qu'il n'y a pas de contradictions.

Cordialement.

bonjour

eneffet ;ensuite avec RechercheV sur la base d'une conca ,il doit etre facile de decupérer la val

Bonjour à tous,

Merci encore pour toutes vos réponses

La solution de h2so4 correspond à ma demande, je vais juste modifier certains critères pour éviter des erreurs.

Je vous souhaite une bonne continuation à tous.

Vous êtes géniaux !!

Rechercher des sujets similaires à "tri categorie fonction liste mots"