Équivalence de la fonction =filtre d'Excel sur open office calc

Bonjour,

Je cherche une formule qui me permettrait d’afficher tout les résultat correspondant à ma recherche.
Par exemple si j’ai un fichier avec dans la colonne A des prénoms et dans la colonne B des dates de naissances, je voudrais en tapant dans la cellule C1 “01/1990” que dans la colonne C s’affiche tout les prénoms dont la date de naissance correspond à “01/1990”

Dans Excel, cette fonction se nomme FILTRE (info trouvé sur: https://www.excel-exercice.com/comment-retourner-plusieurs-valeurs-a-partir-dune-recherche/ Mais je ne trouve pas d’équivalent dans libreoffice calc…

Quelqu’un aurait une idée?

Merci d’avance!
C:\fakepath\16025863355988706(1).ods

Bonjour @Victor62

La fonction équivalente est D4=JOINDRE.TEXTE(", ";VRAI();SI(B$4:B$18 = C4;A$4:A$18;"")), pour un tableau de données en A4:B18 et la date de naissance cible en C4

Voir le fichier joint.

Ajout suite à nouvelle demande, corrigée

Voici la formule “magique” : =SIERREUR(DROITE(REGEX($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3);NBCAR(REGEX($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3))-2);"")

Pour cela, j’ai ajouté un ", " au début de la chaîne récupérée par la formule matricielle en D4 et une “,” à la fin.

Cela me permet de rechercher toutes les séries de n’importe quel caractère [^,] qui ne soit pas une virgule, après la marque de séparation entre les prénoms qui est pour tous ", "

Ensuite, je supprime les 2 caractères initiaux ", " qui polluent la valeur.

Equivalent FILTRE V3.ods

A+ Michel


Pour montrer à la communauté que la question a trouvé sa réponse, cliquez sur ✓ à côté de la “bonne” réponse, et “votez” en cliquant sur la flèche ^ de toute réponse utile. Ce sont les mécanismes utilisés pour communiquer la qualité des questions et réponses sur ce site. Merci!

Pour tout complément d’information, utilisez les boutons situés en dessous de votre question et éditez votre question ou simplement ajouter un commentaire. SVP ! Ne répondez pas à votre propre question à moins d’y apporter une réelle réponse.

Cordialement, Michel

Waouh!! Merci mille fois Michel!

Je m’arrache les cheveux depuis plusieurs semaine!!! Je dois encore ajouter quelques critères de recherche, mais je devrais m’en sortir!

Une dernière question peut-être: Est il possible de faire apparaitre chaque résultat dans une cellule qui lui est propre?
Pour reprendre le tableur que vous m’avez partagé, pour la date du 04/08/12 demandée en C5, Claude apparaitrait en D5, Aurélie en D6 et Gwenaëlle en D7.
Peut-on remplacé la virgule “,” {=JOINDRE.TEXTE(", ";VRAI();SI(B$4:B$18 = C4;A$4:A$18;""))}`qui sépare chaque prénom par un"code" qui enverrai le prochain nom dans la cellule suivante?

Merci encore pour votre partage,
Cordialement, Victor

Bonjour @Victor62

Etendez la formule à la plage D4:Dn qui recouvrent toutes les occurrences de dates de naissance simultanées et vous pouvez utiliser la formule =SIERREUR(REGEX(SUPPRESPACE($D$4);"\b[:alpha:]+\b";;LIGNE(H4)-3);"") pour décomposer le précédent résultat, en autant de termes. Attention, cette recherche de mots entiers ne fonctionne que si les prénoms composés ne comportent pas d’espace : écrire Jean-Paul, plutôt que Jean Paul. Je bute sur la détection des prénoms composés.

Belle journée, Michel

Je ne suis pas sûr de bien comprendre votre réponse, je ne saisis pas où je dois rentrer cette formule… Désolé je débute, pouvez vous l’incruster dans l’exemple que vous m’aviez envoyé?

Pardon @Michel, je ne m’étais pas aperçu que le second commentaire n’était pas de vous! @mgl , dans l’exemple donné par @Michel, où placez vous votre formule?

@Victor62

Pour communiquer avec un membre du forum, utilisez l’arobase immédiatement suivi de son identifiant tel qu’il apparaît soit dans la vignette en haut à droite de la réponse ou au début de sa signature automatique. Quel j’annonce mon prénom,Michel, dans ma signature manuelle ne change rien, pour vous adresser à moi, utilisez mon pseudo mgl. Il y a bien un michel inscrit sur ce forum. Il a peut-être été étonné de recevoir un message de votre part. Mais c’est sans conséquence ! Juste pour info !

A+ Michel

Ah mince!!! Je suis vraiment débutant ++ !! J’essaye tout de suite cette formule magique! Je reviens vers vous pour vous communiquer le résultat! Merci encore !

Bonjour @mgl!
Je reviens vers toi pour faire le point! :wink:
J’ai mis un peu de temps pour adapter la formule, que je n’arrivais pas à faire fonctionner au bureau. La formule fonctionnait très bien dans le document Equivalent filtre V3 mais ne fonctionnait plus qd j’essayais de la mettre en place sur mon tableau. Je me suis donc envoyé le fichier par mail pour pouvoir travailler chez moi. Et là miracle tout fonctionne ! Serait ce un problème de version, car aujourd’hui la seconde partie de la formule (celle qui permet de fractionner le 1er résultat) ne donne rien, et une partie de la formule apparait en minuscule quoi que je fasse et celà sur mon doc comme sur le document “equivalent filtre V3” ! voilà ce qui apparait en K4: =SIERREUR(DROITE(org.libreoffice.regex($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3);NBCAR(org.libreoffice.regex($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3))-2);"")

Bonjour @Victor62

Allez dans Ouils>Options>LibreOffice Calc… et cochez Autoriser les expressions régulières (Je cite de mémoire) et dites-nous.

Belle journée, Michel

J’ai suivis les instructions mais aucun changement. “REGEX” reste en minuscule quoi que je fasse, et aucun résultat n’apparait dans la cellule.
Merci beaucoup @mgl de prendre sur votre temps!

Par ailleur un * est venu se glisser dans la formule:
=SIERREUR(DROITE(regex(B$9;",[:space:]?+[^,]";;LIGNE(AH9)-3);NBCAR(regex(B$9;",[:space:]?+[^,]";;LIGNE(AH9)-3))-2);"")

il se glisse juste après[:space:]?+[^,]

je ne le vois pas dans la formule que vous avez indiqué dans votre réponse (Voici la formule “magique” : =SIERREUR(DROITE(REGEX($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3);NBCAR(REGEX($D$4;",[:space:]?+[^,]";;LIGNE(K4)-3))-2);"") )

Quelles versions, au bureau et à la maison, de LO et du système d’exploitation, SVP ?

org.libreoffice.regex est le petit nom de la fonction REGEX dans le fichier qui contient le contenu des cellules du classeur content.xml. S’il apparaît comme tel mais pas les autres fonctions… cela pose la question de la compréhension de cette formule par votre version de LO. Pour info, le début de la formule dans content.xml

<table:table-cell table:formula="of:=IFERROR(RIGHT(ORG.LIBREOFFICE.REGEX([.$D$4];&quot;,[:space:]?+[^,]*&quot;;;ROW([.K4])-3);

où 'on voit que SIERREUR s’écrit en fait IFERROR et que DROITE s’écrit RIGHT dans le fichier LO. Alors pourquoi ORG.LIBREOFFICE.REGEX n’est-elle pas traduite en REGEX et exécutée comme telle ?

Il n’y a pas de bug ouvert à ce sujet.

L’astérisque superflue est interprétée comme Zéro ou plusieurs termes d’expressions régulières le précédent immédiatement. Il perturbe évidemment le résultat de la fonction. Mais cela n’explique pas ce défaut d’interprétation du fichier LO. Si vous le retirez, cela améliore-t-il le résultat?

Pour la maison je suis sous la dernière version windows 10 (pour le système d’exploitation il me semble que c’est du 64 bits mais je ne suis pas certain) et sur la dernière version LO 6
pour le bureau je suis sous un système d’exploitation 64 bits avec la version windows 10 pro et la version de LO est la suivante: 6.1.6.3.M15 (x64)

pour le " * " que je le retire ou pas, ma cellule reste vide.
j’ai essayé en laissant le ORG.LIBREOFFICE.REGEX, une fois la formule validée, quand je reviens sur la cellule, l’expression s’affiche en minuscule org.libreoffice.regex comme quand je rentre REGEX seul.

La dernière version stable de LO est la version 6.4.6. (La version 7.0 est réservée aux volontaires qui acceptent de gérer des défauts de jeunesse!) Pouvez-vous essayer la mise à jour de votre LO, SVP, selon les instructions dans le bas de cette page ?

malheureusement je n’ai pas les accès administrateur sur mon poste. (au bureau) Et de ce qu’un collègue vient de m’expliquer, notre version est une version utilisé par la fonction publique (MIMO). Mais cela n’explique pas pour quoi la formule fonctionnait hier (dans votre document en tout cas) et ne fonctionne plus aujourd’hui…à moins que! Par contre la version 6.4.6 est bien celle que j’ai à la maison.

Pourriez-vous mettre le fichier Equivalent filtre V3 corrompu à disposition. Pour cela, éditez le corps de votre question (bouton éditer sous le corps de la question). Positionnez le curseur en base du message. Vous pourrez alors utiliser le trombone pour joindre ce fichier.

Bonjour @mgl , J’ai rajouté le fichier en pièce jointe comme demandé!