[Résolu]Rechercher plusieurs lignes de données selon critère

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Sim62140
Fraîchement OOthentifié
Messages : 7
Inscription : 15 juin 2018 14:36

[Résolu]Rechercher plusieurs lignes de données selon critère

Message par Sim62140 »

Bonjour à tous,

Je cherche un moyen de faire ressortir plusieurs lignes de données selon le même critère de recherche mais en ignorant les lignes de données déjà ressorties. (C'est brouillon je sais, je fournis un exemple)

Dans mon cas concret, je veux qu'en écrivant "Course", "Trail" ou "Fractionné", le 2nd tableau me renvoie chaque lignes correspondantes du 1er tableau mais sans me donner 2 fois la même.

Merci d'avance, cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 31 juil. 2018 13:24, modifié 1 fois.
Raison : Balisage
OpenOffice 4 sous Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Jean-Louis Cadeillan »

Bonsoir,
Dans la solution proposée ci-joint, il suffit de choisir en B16 par liste déroulante le type de course pour que le second tableau affiche toutes les courses du même type : est-ce bien cela que tu souhaitais ?
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Sim62140
Fraîchement OOthentifié
Messages : 7
Inscription : 15 juin 2018 14:36

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Sim62140 »

Bonjour Jean-Louis

Vous êtes décidemment un génie ..

Je comprends la formule dans "Type".
Je comprends également les formules dans toute les colonnes suivantes.
Mais, je ne comprends pas la formule utilisée dans la colonne "Date", pouvez vous essayer de me l'expliquer?

Mille merci, Teddy.
OpenOffice 4 sous Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Jean-Louis Cadeillan »

Bonjour,
Sim62140 a écrit :la formule utilisée dans la colonne "Date", pouvez-vous essayer de me l'expliquer ?

Code : Tout sélectionner

=SI(ESTERR(PETITE.VALEUR(SI($B$3:$B$12=$B$16;$A$3:$A$12;"");LIGNE($A$1:$A$10)));"";PETITE.VALEUR(SI($B$3:$B$12=$B$16;$A$3:$A$12;"");LIGNE($A$1:$A$10)))
est une formule matricielle, à saisir en A16 et à valider par Ctrl+Maj+Entrée.
Le contrôle d'erreur l'alourdit :

Code : Tout sélectionner

=SI(ESTERR(PETITE.VALEUR(...));"";PETITE.VALEUR(...))
Donc en enlevant le contrôle d'erreur, on obtient :

Code : Tout sélectionner

=PETITE.VALEUR(SI($B$3:$B$12=$B$16;$A$3:$A$12;"");LIGNE($A$1:$A$10))
PETITE.VALEUR() renvoie la nième petite valeur d'une liste de valeurs numériques et LIGNE($A$1:$A$10) est une façon d'écrire {1, 2, 3..., 10}, c'est-à-dire que PETITE.VALEUR() renvoie la première petite valeur, la deuxième,.... la dixième petite valeur dans une matrice de 1 colonne et 10 lignes (un "vecteur"). Mais quelles sont ces valeurs ? Ce sont celles contenues dans la matrice retournée par SI($B$3:$B$12=$B$16;$A$3:$A$12;"") qui est aussi un vecteur rempli comme suit : "si le type de courses est identique à celui contenu dans B16, alors afficher la date correspondante, sinon ne rien afficher". Dans le cas, par exemple où B16="Fractionné", le "vecteur" SI(...) retourne {"";"";03/08/18;"";"";06/08/18;"";"";"";10/08/18}... à charge pour PETITE.VALEUR() de trier ces valeurs et les "remonter", mais ce qui génère des erreurs quand PETITE.VALEUR() ne trouve pas... de valeur ! D'où le contrôle d'erreur.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Sim62140
Fraîchement OOthentifié
Messages : 7
Inscription : 15 juin 2018 14:36

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Sim62140 »

J'ai mis du temps mais je viens de comprendre dans l'ensemble !
$B$3:$B$12=$B$16
C'est cette partie qui rend la formule matricielle ?
LIGNE($A$1:$A$10)
Ou celle là ?
Ou les deux ..?
Je ne connaissais pas les formules matricielles, nouvelle découverte pour moi :)

Le temps que j'y suis, est il possible de faire la même chose avec 2 critères ? Pour l'instant je n'en ai pas l'intérêt mais quand j'aurais beaucoup plus d'entrées, pourrais-je faire ressortir uniquement les "Courses" pendant le mois d'Aout uniquement, par exemple.

Merci encore du temps que vous prenez pour moi et pour chaque personne ici !

EDIT = Peut-on revenir en arrière sur une formule matricielle ? L'annuler en quelque sorte pour la modifier ?
OpenOffice 4 sous Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Jean-Louis Cadeillan »

Sim62140 a écrit :Ou les deux ..?
Oui, une formule nécessite une validation matricielle lorsque la formulation standard d'un ou de plusieurs de ses arguments n'est pas une matrice (à voir comme définition récursive : un de ses arguments peut être une formule qui...etc.)
Sim62140 a écrit :est il possible de faire la même chose avec 2 critères ?
Oui, la partie SI($B$3:$B$12=$B$16;... peut se complexifier, comme n'importe quel test, avec des fonctions OU(), ET(), des opérateurs *, +...
Sim62140 a écrit :Peut-on revenir en arrière sur une formule matricielle ?
Oui, il faut commencer par sélectionner toutes les cellules qui en font partie : soit à la souris soit Ctrl+/ (barre oblique du clavier numérique); les cellules ainsi sélectionnées, on peut supprimer la formule (Suppr) ou la modifier F2. Si elle doit changer de dimensions (par exemple $B$3:$B$100=$B$16), on la copie (F2, Ctrl A, Ctrl C), on la supprime, on la recolle dans la première cellule et on valide par Ctrl+Maj+Entrée.
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3954
Inscription : 06 oct. 2008 08:03

Re: Rechercher plusieurs lignes de données selon un critére.

Message par Oukcha »

Bonjour,
Dernière visite le : 20 Juil 2018 23:33
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.

Merci de baliser par vous-même la prochaine fois.

Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La politesse fait également partie de la philosophie du logiciel libre.

En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image