Fonction FILTER avec condition de contenir en partie un texte

Bonjour,

J'utilise une feuille de calcul google sheet pour de la saisie de temps.

A la fin du mois je souhaite obtenir un tableau récapitulatif récupérant de manière automatique les informations de la feuille de saisie de temps.

En face de chaque salarié doit apparaître notamment les jours où il a travaillé.

Là où cela se complique, c'est que d'une part, dans la feuille de saisie de temps, dans la plupart des cellules K, il y a le nom de plusieurs salariés, chacun séparé par une virgule et un espace.

Et d'autre part, il peut y avoir indiqué, toujours dans la feuille de saisie de temps, la même date dans plusieurs lignes pour les mêmes salariés (car chaque ligne correspond à une mission et un salariés effectue plusieurs missions par jour).

Je pense donc avoir trouvé les différentes formules à imbriquer pour arriver à mes fins.

C'est sur cette formule que je souhaiterais obtenir de l'aide. La voici :

=JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;'Feuille Saisie Temps'!$C:$C=$B$1;'Feuille Saisie Temps'!$K:$K="*"&A3&"*"))))

B=Mois ; A=Jour ; K=Salarié

Le problème se trouve dans le fait que google sheet semble ne pas reconnaître l'information "*NomSalarié*" ni la fonction "*"&CELLULE&"*" (en l'occurrence "*"&A3&"*") pour la fonction FILTER dans la Feuille Saisie Temps.

En effet, Google sheet me renvoie l'erreur : #N/A "Aucune correspondance trouvée lors de l'évaluation de la fonction FILTER".

J'ai passé 2 jours à tenter de résoudre le problème mais je n'arrive pas à trouver de solution.

Pourriez-vous m'aider svp ?

Voici le Lien du Fichier pour illustrer ma requête : https://docs.google.com/spreadsheets/d/1HEOb1euAt5TPriK_G7cSGtY3i9pwQqAbEHcsCu14bqs/edit?usp=sharing

Je vous remercie par avance pour votre aide.

Bonjour,

Non cela ne fonctionne pas, pas plus avec % à la place de *

La solution est soit de remplacer filter par query, soit tout simplement utiliser search

=JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;'Feuille Saisie Temps'!$C:$C=$B$1;search(A3;'Feuille Saisie Temps'!$K:$K)))))

Bonjour,

SUPER, Merci beaucoup Steelson :D

Parfait !

N'oublie pas de fermer le fil de discussion en cliquant sur

Rebonjour,

Désolé, juste une autre problème avec cette formule : dès que j'ajoute une condition de plus, un message d'erreur apparaît : "La taille de la plage FILTER n'est pas valide".

Je souhaiterais par exemple voir afficher les dates si, en plus des autres conditions, les jours sont lundi et mardi.

Ou bien au contraire, je souhaiterais voir afficher les dates si , en plus des autres conditions, les jours ne sont pas lundi ni mardi.

Une nouvelle fois merci d'avance pour votre aide

Il y a un espace derrière lundi

=JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;'Feuille Saisie Temps'!$A:$A="Lundi ";'Feuille Saisie Temps'!$C:$C=$B$1;SEARCH(A3;'Feuille Saisie Temps'!$K:$K)))))

mieux vaut le supprimer pour tous les jours !

Merci

Dsl encore une question : Comment faire pour afficher 0 si aucune valeur n'est trouvée svp ?

Là la formule risque d'être à rallonge, je ne sais pas faire simplement, quel serait l'intérêt ?

Je corrige ma réponse ... si la formule affiche une erreur quand aucune valeur n'est trouvée, alors tu peux encadrer ta formule avec

=IFERROR(_________________;0)
=IFERROR(JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;'Feuille Saisie Temps'!$A:$A<>"Lundi";'Feuille Saisie Temps'!$C:$C=$B$1;SEARCH(A3;'Feuille Saisie Temps'!$K:$K)))));0)

Super, merci !

Dsl une dernière question : Est-il possible dans la fonction FILTER que la condition pour le jour recherché soit lundi ou bien mardi. A l'inverse est-il possible que la condition soit ni lundi, ni mardi ?

est-il possible que la condition soit ni lundi, ni mardi ?

=IFERROR(JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;'Feuille Saisie Temps'!$A:$A<>"Lundi";'Feuille Saisie Temps'!$A:$A<>"Mardi";'Feuille Saisie Temps'!$C:$C=$B$1;SEARCH(A3;'Feuille Saisie Temps'!$K:$K)))));0)

pour lundi ou mardi il faut que je teste

Erreur ... je te laisse la main, je vois que tu es sur le fichier

La formule ci-dessus correspond à différent de lundi OU différent de mardi

Pour ni l'un ni l'autre, il faudrait essayer

=IFERROR(JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;AND('Feuille Saisie Temps'!$A:$A<>"Lundi";'Feuille Saisie Temps'!$A:$A<>"Mardi");'Feuille Saisie Temps'!$C:$C=$B$1;SEARCH(A3;'Feuille Saisie Temps'!$K:$K)))));0)

En réalité, je ne maîtrise pas assez le jeu d 'essai pour confirmer.

Bref, je pense que query serait plus adapté.


On était sur la problématique search, on déborde un peu, ferme ce post et ouvre un nouveau si la solution ci-dessus n'est pas la bonne.

Dsl, je quitte le fichier et te laisse la main.

"En réalité, je ne maîtrise pas assez le jeu d 'essai pour confirmer"

Je n'ai pas compris.

Je ne connais pas trop la fonction query, je vais me renseigner.

Je te remercie en tout cas pour toute l'aide que tu m'as déjà apporté, c'est vraiment super !

La fonction :

=IFERROR(JOIN(", ";SORT(UNIQUE(FILTER('Feuille Saisie Temps'!$B:$B;AND('Feuille Saisie Temps'!$A:$A<>"Lundi";'Feuille Saisie Temps'!$A:$A<>"Mardi");'Feuille Saisie Temps'!$C:$C=$B$1;SEARCH(A3;'Feuille Saisie Temps'!$K:$K)))));0)

semble ne pas fonctionner. Elle me donne le résultat 0

Y a t'il des cas ? Mardi n'est-il pas suivi d'espaces ? Est-ce que le filtre peut influencer ?

je ne comprends plus rien à ton fichier ... ceci fonctionnait pourtant https://forum.excel-pratique.com/sheets/fonction-filter-avec-condition-de-contenir-en-partie-un-text...

ensuite tous les salariés ne sont pas conformes à la règle de validation

je ne continue pas avec des règles et un fichier qui évoluent et remettent en cause ce qui a été fait

J'ai effectivement supprimé les espaces comme tu me l'avais conseillé et j'ai ajouté dans la feuille de saisie de temps François mercredi 12 et Jeudi 13 Décembre pour poursuivre les tests afin de vérifier si la formule fonctionne et renvoie bien "12, 13" dans la cellule B3 dans la feuille récapitulatif mensuel

ensuite tous les salariés ne sont pas conformes à la règle de validation

C'est à dire ? Je ne comprends pas

En tout cas un grand Merci à toi Steelson pour avoir trouvé la solution à mon problème de départ !

Bonjour,

J'ai ajouté 2 onglets "Test" et "Tableau croisé dynamique" vois si ça te convient, tu peux ajouter autant de ligne que tu souhaites, tu as un récap par salarié.

A modeler à ta convenance !

CDLT

Alex

Rechercher des sujets similaires à "fonction filter condition contenir partie texte"