Excel, fonction "estnum", "cherche", "et"

anth33 Messages postés 6 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 28 novembre 2024 - 18 nov. 2024 à 17:18
anth33 Messages postés 6 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 28 novembre 2024 - 28 nov. 2024 à 12:18

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

A voir également:

8 réponses

danielc0 Messages postés 1424 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 24 janvier 2025 168
18 nov. 2024 à 19:02

Bonjour,

Avec cette disposition :

En C1 :

=SOMME(SI(ESTNUM(EQUIV("*"&G1:G4&"*";A1;0));1;0))>1

Pour les versions antérieures à Excel 2019, valider matriciellement (Ctrl+Maj+Entrée)

Daniel


1

Voici le liens avec un fichier test pour expliquer mon besoin de manière plus précise

https://www.cjoint.com/c/NKtosBEZRRj

0
Le Pingou Messages postés 12230 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 15 janvier 2025 1 454
19 nov. 2024 à 15:26

Bonjour,

Merci pour le fichier.

Je suppose que la proposition de danielc0 ne convient pas?


0
danielc0 Messages postés 1424 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 24 janvier 2025 168
19 nov. 2024 à 15:56

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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1424 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 24 janvier 2025 168
Modifié le 19 nov. 2024 à 16:16

Par 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


0
Le Pingou Messages postés 12230 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 15 janvier 2025 1 454
19 nov. 2024 à 23:30

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


0
anth33 Messages postés 6 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 28 novembre 2024
Modifié le 21 nov. 2024 à 11:19

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

0
danielc0 Messages postés 1424 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 24 janvier 2025 168
21 nov. 2024 à 13:01

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

0
danielc0 Messages postés 1424 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 24 janvier 2025 168
21 nov. 2024 à 15:36

"J'avoue ne comprendre aucune des 2 méthodes mais elles fonctionnent"

Est-ce que tu souhaites une explication ?

Daniel


0
anth33 Messages postés 6 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 28 novembre 2024
28 nov. 2024 à 12:18

Bonjour

Avec la nouvelle formule je comprend un peu mieux.

c'est une combinaison des fonction INDEX et EQUIV.

Je sais que c'est une combinaison qui est souvent utiliser, mais j'ai encore un peu de mal à m'en servir de moi même.

mais ça viendra en m'exerçant ^^

0