Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fonction filtre

  • Initiateur de la discussion batiscaf
  • Date de début
B

batiscaf

Guest
Bonjour tout le monde en cette belle veille de week-end.

Devinez quoi ? je suis bloqué. Et malheureusement je ne trouve rien dans le forum.

Vous trouverez ci-joint le détail de mes tracas.
Je suis à la recherche de la fonction XL équivalente au filtre personnalisé "contient".
En Vb je m'en sort, mais je n'y arrive pas sous forme de fonction. Surtout que je veux l'imbriquer dans une fonction SI.

Si d'aventure je faisais fausse route (ce qui arrive ma foi assez souvent) merci de me donner des tuyaux.

Bien cordialement.

Batiscaf.
 

Pièces jointes

  • demofiltrecontient.zip
    4.6 KB · Affichages: 18
M

Monique

Guest
Bonjour,

En F3 :
=SI(SOMMEPROD(ESTNUM(CHERCHE(H$3;B33))*1)>0;H$3;SI(SOMMEPROD(ESTNUM(CHERCHE(H$4;B33))*1)>0;H$4;SI(SOMMEPROD(ESTNUM(CHERCHE(H$5;B33))*1)>0;H$5;SI(SOMMEPROD(ESTNUM(CHERCHE(H$6;B33))*1)>0;H$6;""))))
Plus court mais à valider par ctrl, maj et entrée :
=SI(SOMME(ESTNUM(CHERCHE(H$3;B33))*1)>0;H$3;SI(SOMME(ESTNUM(CHERCHE(H$4;B33))*1)>0;H$4;SI(SOMME(ESTNUM(CHERCHE(H$5;B33))*1)>0;H$5;SI(SOMME(ESTNUM(CHERCHE(H$6;B33))*1)>0;H$6;""))))

Plus simple mais ce n'est pas ce que tu cherches :
La plage H3:H6 est nommée "Table"
Nb de fois où l'un des mots de la table est rencontré :
En F3 :
=SOMMEPROD(ESTNUM(CHERCHE(Table;B33))*1)
Résultat par VRAI ou FAUX :
=SOMMEPROD(ESTNUM(CHERCHE(Table;B33))*1)>0

Soeur et soeurette : l'une des 2 a ses a et e collés, l'autre pas.
 
B

batiscaf

Guest
Bonsoir tous,

Merci Monique pour cette solution qui me convient assez dans l'esprit de ce que je voulais faire.

J'ai toutefois une question :
Ne peut-on pas réellement se passer d'une table de référence pour mettre les 4 noms directement dans la formule ?
Il est quand même bien étonnant de ne pas disposer d'une fonction qui remplace le filtre personnalisé "contient".

Si quelqu'un connait la solution, je prends.

A bientôt.

Batiscaf.
 
M

Monique

Guest
Bonjour,

Si, on peut se passer d'une table.
Et, en plus, pour la 1ère formule, on peut faire beaucoup plus simple et plus facile à lire, avec Nb.Si
Pour la ligne 3 :
=SI(NB.SI(B33;"*frere*")>0;"frere";SI(NB.SI(B33;"*maman*")>0;"maman";SI(NB.SI(B33;"*sœur*")>0;"sœur";SI(NB.SI(B33;"*papa*")>0;"papa";""))))

Nb de fois où l'un des mots est rencontré :
=NB.SI(B33;"*frere*")+NB.SI(B33;"*maman*")+NB.SI(B33;"*sœur*")+NB.SI(B33;"*papa*")
=SOMMEPROD(ESTNUM(CHERCHE({"frere";"maman";"sœur";"papa"};B33))*1)

Résultat par VRAI ou FAUX (contient ou ne contient pas un des mots) :
=(NB.SI(B33;"*frere*")+NB.SI(B33;"*maman*")+NB.SI(B33;"*sœur*")+NB.SI(B33;"*papa*"))>0
=SOMMEPROD(ESTNUM(CHERCHE({"frere";"maman";"sœur";"papa"};B33))*1)>0
 
B

batiscaf

Guest
Bonsoir le Forum, et particulièrement Monique.

Monique,

Toutes tes infos me sont essentielles.
En effet le fait de ne disposer que d'1 ou 2 critères m'oriente plus avec ta seconde solution,
mais dans les cas ou je travaille sur une dizaine de critères par exemple, il y a pas photo pour passer par la table de recherche.

Un grand merci.

Batiscaf.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…