[Résolu] Liste conditionelle avec classement

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.
migrec
Membre hOOnoraire
Membre hOOnoraire
Messages : 108
Inscription : 16 oct. 2012 20:02

[Résolu] Liste conditionelle avec classement

Message par migrec »

Bonjour,

J'ai déjà fait quelque chose de similaire par le passé mais impossible de remettre la main dessus...
J'ai une liste de personnes avec des horaires d'arrivée et un groupe. Je souhaite établir, dans une feuille à part, la liste des personnes pour un groupe, triée selon l'horaire d'arrivée.

La liste initiale peut être dans le désordre car triée autrement...Ci-joint un exemple.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par migrec le 02 mai 2021 18:20, modifié 1 fois.
LibreOffice 7 dernière version disponible sous Kubuntu 21.10 / Windows 10
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Liste conditionelle avec classement

Message par Jeff »

Bonjour,

Une première approche, j'ai volontairement laissé les cellules en erreur.

Le choix en cellule Groupe.B2 actualise les résultats.

Tu obtiens un classement trié par ligne selon le contenu de la liste.

A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
migrec
Membre hOOnoraire
Membre hOOnoraire
Messages : 108
Inscription : 16 oct. 2012 20:02

Re: Liste conditionelle avec classement

Message par migrec »

Merci Jeffpour ce début
Jeff a écrit :Tu obtiens un classement trié par ligne selon le contenu de la liste.
En fait, j'arrive à peu près à avoir ça. Mais ma difficulté est d'avoir une liste triée par heure :
1 8h00 Nom2
2 9h00 Nom14
3 10h00 Nom8

Je pensais à une formule matricielle du style
INDEX(PETITE.VALEUR(Liste.colonneGroupe=FiltreGroupe;RANG_à_chercher))
LibreOffice 7 dernière version disponible sous Kubuntu 21.10 / Windows 10
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Liste conditionelle avec classement

Message par Jeff »

Est-ce que à la même heure tu peux avoir deux noms sur le même groupe ?

En gros, est-ce que ton fichier-exemple est exhaustif ?
migrec
Membre hOOnoraire
Membre hOOnoraire
Messages : 108
Inscription : 16 oct. 2012 20:02

Re: Liste conditionelle avec classement

Message par migrec »

Jeff a écrit :Est-ce que à la même heure tu peux avoir deux noms sur le même groupe ?
Il y a une seule exception pour 150 lignes mais je peux la gérer à part (je peux mettre 9h01 pour le 2ème nom, voire rajouter 1 seconde en tricher avec l'affichage).
LibreOffice 7 dernière version disponible sous Kubuntu 21.10 / Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Liste conditionelle avec classement

Message par zeguedon »

Bonjour,

J'avais commencé une petite ébauche hier soir mais la fièvre a eu raison de moi :)
A tester :
Z1_ListeConditionnelleSelonHeure.ods
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
migrec
Membre hOOnoraire
Membre hOOnoraire
Messages : 108
Inscription : 16 oct. 2012 20:02

Re: Liste conditionelle avec classement

Message par migrec »

Merci, je pense que je ça répond bien à mon besoin !

C'est ça qui me manquait dans la formule matricielle, on filtre sur une colonne mais on renvoie les données d'une autre colonne !
SI(Liste.$A$3:$A$20=$B$2;Liste.$B$3:$B$20;"")
LibreOffice 7 dernière version disponible sous Kubuntu 21.10 / Windows 10
migrec
Membre hOOnoraire
Membre hOOnoraire
Messages : 108
Inscription : 16 oct. 2012 20:02

Re: [Résolu] Liste conditionelle avec classement

Message par migrec »

Pour éviter d'avoir trop recours à des formules matricielles, j'ai opté pour récupérer la position dans la matrice de la valeur recherché. Ensuite avec INDEX, je retrouve mes données (RECHERCHEV si en plus on a un id devant la ligne).

Code : Tout sélectionner

=SIERREUR(EQUIV(PETITE.VALEUR(SI(Liste.$H$2:$H$199=$E$3;Liste.$G$2:$G$199;"");LIGNE(A1));SI(Liste.$H$2:$H$199=$E$3;Liste.$G$2:$G$199;"");0);"")
Cellule E3 : mon critère de filtre pour la colonne H
Feuille Liste
Colonne G : l'heure d'arrivée (dans le groupe, tous ont un horaire différent)
Colonne H : le groupe de la personne

Merci encore !
LibreOffice 7 dernière version disponible sous Kubuntu 21.10 / Windows 10