Excel, fonction "estnum", "cherche", "et"
anth33 Messages postés 7 Statut Membre -
Bonjour,
Alors, je vais essayer d'être précis ^^
je suis actuellement en train d'utiliser la fonction :
SI(SOMMEPROD(--ESTNUM(CHERCHE( [ma liste 1] ;A1])));"Plomberie";;SI(SOMMEPROD(--ESTNUM(CHERCHE( [ma liste 2] ;A1])));"Toitures";.........
afin de déterminé, si ma cellule contiens un mot contenu dans une liste que j'ai établi avant.
L'idée étant un catégorisé mes interventions, pour établir des stats.
Actuellement cela fonctionne parfaitement, si je ne cherche qu'un seul mot de ma liste dans ma cellule.
Maintenant, je voudrai, la combiné avec la fonction "ET"
et du coup, au lieu d'utiliser une liste, pour voir si l'un des mots de la liste est présent, je voudrait voir si plusieurs mot sont présent dans ma cellule.
Du style :
SI(SOMMEPROD(--ESTNUM(CHERCHE(et( [mot 1] ; [mot 2] );A1])));"Plomberie";......
pour facilité mon besoin.
Je cherche à dispatché mes interventions selon plusieurs catégorie selon leur intitulé comme je l'ai expliquer plus haut.
et par exemple, il est compliqué lorsque par exemple j'ai une "Fuite d'eau" de faire la différence entre une fuite d'eau wc et fuite d'eau toiture.
mon idée, c'est que si mon intitulé contient "fuite" et "toiture" => alors je renvoi "toiture"
alors que si mon intitulé contient "fuite" et "sanitaire" => alors je renvoi "plomberie"
je sais pas si j'ai été assez clair dans mes explications.
Petite précision également, je cherche une solution avec des formules, puisque je n'y connait absolument rien en VBA ^^
Merci d'avance
Windows / Chrome 127.0.0.0
- Estnum excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
8 réponses
Le besoin est de catégoriser des interventions à partir de mots-clés présents dans une description, avec une logique AND lorsque plusieurs termes doivent figurer pour attribuer une catégorie (par exemple « fuite » et « toiture » → « toiture »).
Plusieurs approches Excel sans VBA ont été proposées, notamment l’usage de SOMMEPROD avec ESTNUM(CHERCHE()) pour compter les mots-clés trouvés et une condition >1 pour exiger plusieurs correspondances, version qui peut nécessiter une saisie matricielle sur les anciennes versions d’Excel.
Pour Excel 365, des solutions reposant sur des tableaux structurés et des plages dynamiques permettent d’ajouter des critères sans modifier les formules, et des variantes combinent EQUIV avec des jokers et SOMME pour déterminer la catégorie correspondante.
Des exemples concrets illustrent une formule évaluant plusieurs listes de mots-clés par catégorie et renvoyant la catégorie correspondante lorsque les mots apparaissent dans la description, avec des approches utilisant INDEX et EQUIV selon les préférences.
Voici le liens avec un fichier test pour expliquer mon besoin de manière plus précise
https://www.cjoint.com/c/NKtosBEZRRj
Bonjour à tous,
En D13 :
=SI(SOMME(SI(ESTNUM(EQUIV("*"&$G$3:$G$9&"*";[@[Description OT]];0));1;0))>0;"Plomberie";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$H$3:$H$6&"*";[@[Description OT]];0));1;0))>0;"Routes-marquages au sol";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$I$3:$I$10&"*";[@[Description OT]];0));1;0))>0;"Huisseries-menuiseries-metallerie";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$J$3:$J$5&"*";[@[Description OT]];0));1;0))>0;"sol-peinture-petits travaux interieur";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$I$3:$I$10&"*";[@[Description OT]];0));1;0))>0;"Huisseries-menuiseries-metallerie";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$J$3:$J$5&"*";[@[Description OT]];0));1;0))>0;"sol-peinture-petits travaux interieur";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$K$3&"*";[@[Description OT]];0));1;0))>0;"stores";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$L$3:$L$5&"*";[@[Description OT]];0));1;0))>0;"maçonnerie-gros œuvre";"")&SI(SOMME(SI(ESTNUM(EQUIV("*"&$M$3:$M$7&"*";[@[Description OT]];0));1;0))>0;"toitures-couvertures";"")
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPar contre, si l'on dispose les mots-clefs et les catégories comme ceci :
La formule devient, en D13 :
=SIERREUR(INDEX($K$16:$K$46;EQUIV(1;EQUIV("*"&$J$16#&"*";C13;0);0));"")
https://www.cjoint.com/c/NKtpobxQxn4
Daniel
Bonsoir,
Ma proposition dans le même sens que daniel0 mais en utilisant dans la formule, les plages nommées dynamiques (en cas d'ajout de critères la plage y relative s'adapte)
Le fichier : https://www.cjoint.com/c/NKtwD3r7VaZ
Bonjour
Désolé pour ma réponse tardive.
Merci pour toute les propositions.
J'avoue ne comprendre aucune des 2 méthodes mais elles fonctionnent ^^
@danielc0 StatutMembre que j'ouvre ton fichier, la formule m'affiche _xlfn.VSTACK ou _xlfn.ANCHORARRAY
je n'ai aucune idée de ce à quoi ça correspond
Bonjour à tous,
@anth33 StatutMembre
Désolé. Il s'agit de formules propres à Excel 365. Voici le classeur modifié :
https://www.cjoint.com/c/NKvl0mqAhy4
L'avantage de cette disposition est que tu peux ajouter des catégories sans modifier le formule si on se sert d'un tableau structuré :
https://www.cjoint.com/c/NKvmbc7oUg4
Daniel

