• Publicité

[Résolu] Garder 1ère et dernière ligne d'une série

Dans ce forum, vous pouvez poser toutes vos questions concernant l'utilisation de logiciels de bureautique (Microsoft Office, Open Office, etc.)

Modérateurs: Sebastien, Stéphane, Christophe

[Résolu] Garder 1ère et dernière ligne d'une série

Messagepar Ju' » 18 Mai 2016 15:40

Bonjour,

Je suis sur calc de libre office 5.1.2-3. J'ai une série de données triées par date année-mois-jour heure:minute:seconde et je voudrais nettoyer ces données en ne conservant que la 1ère et la dernière donnée de la journée.

Ex :
Code: Tout sélectionner
2015-04-12 07:00:00
2015-04-12 08:00:00
2015-04-12 09:00:00
2015-04-12 10:00:00
2015-04-12 11:00:00
2015-04-12 12:00:00
2015-04-12 13:00:00
2015-04-12 14:00:00
2015-04-12 15:00:00
2015-04-12 16:00:00
2015-04-12 17:00:00
2015-04-12 18:00:00
2015-04-12 19:00:00
2015-04-13 06:00:00
2015-04-13 07:00:00
2015-04-13 08:00:00
2015-04-13 09:00:00
2015-04-13 10:00:00
2015-04-13 11:00:00
2015-04-13 12:00:00
2015-04-13 13:00:00
2015-04-13 14:00:00
2015-04-13 15:00:00
2015-04-13 16:00:00
2015-04-13 17:00:00
2015-04-13 18:00:00
2015-04-13 19:01:00
2015-04-14 06:03:00
2015-04-14 07:00:00
2015-04-14 08:00:00
2015-04-14 09:00:00
2015-04-14 10:00:00
2015-04-14 11:00:00
2015-04-14 12:00:00
2015-04-14 13:00:00
2015-04-14 14:00:00
2015-04-14 15:01:00
2015-04-14 16:00:00
2015-04-14 17:00:00
2015-04-14 18:00:00
2015-04-14 19:00:00


et je veux arriver à cela :
Code: Tout sélectionner
2015-04-12 07:00:00
2015-04-12 19:00:00
2015-04-13 06:00:00
2015-04-13 19:01:00
2015-04-14 06:03:00
2015-04-14 19:00:00


Existe-t-il une formule pour y arriver ? car manuellement, c'est très fastidieux et très TRÈS long (surtout avec 300 000 données ...)

Merci d'avance pour votre aide.

Ju'
Modifié en dernier par Ju' le 13 Juin 2016 10:05, modifié 1 fois.
Ju'
No0b
No0b
 
Messages: 4
Enregistré le: 18 Mai 2016 15:30

Re: Garder 1ère et dernière ligne d'une série

Messagepar Sebastien » 18 Mai 2016 22:10

Bonjour,
Ju' a écrit:Je suis sur calc de libre office 5.1.2-3. J'ai une série de données triées par date année-mois-jour heure:minute:seconde et je voudrais nettoyer ces données en ne conservant que la 1ère et la dernière donnée de la journée.

J'ai une solution avec Excel mais il faut que je la teste avec Calc pour voir si elle fonctionne. Je reposte dès que possible.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Garder 1ère et dernière ligne d'une série

Messagepar Ju' » 19 Mai 2016 11:14

Bonjour et merci.

J'attends votre solution. Je peux vous apporter quelques précisions : Parfois il n'y a qu'une seule donnée par jour, que je conserve ou non selon l'heure. Par exemple, je ne souhaite pas garder les données comprises entre ... heu ... disons 10h et 15-16h.

Encore merci et au plaisir de vous lire !
Ju'
No0b
No0b
 
Messages: 4
Enregistré le: 18 Mai 2016 15:30

Re: Garder 1ère et dernière ligne d'une série

Messagepar Sebastien » 19 Mai 2016 21:50

Bonjour,

J'ai réussi à faire quelque chose. Je l'ai testé sur Excel et sur Calc. La solution n'est pas complétement automatique mais ça devrait vous faire gagner du temps (ça devrait vous prendre 5 minutes).
Partons du principe que la colonne A de votre fichier contient les dates (J'ai repris vos données telles quelles).

Aperçu :
Image

Nous allons ajouter une colonne JOUR afin d'avoir les dates sans les heures (ça nous servira à rechercher les valeurs MIN et MAX)
En B2, insérez la formule suivante :
Code: Tout sélectionner
=TEXTE(A2;"JJ/MM/AAAA")


Aperçu :
Image

Recopiez la formule vers le bas.

:arrow: Nous avons désormais une date en face de chaque ligne.


Copiez toute la colonne B et recollez la en faisant un collage spécial en cochant "texte" et "date et heure".


La prochaine étape va être de lister les dates sans doublons (dans votre exemple il n'y en a que trois).
Sélectionnez la colonne B, faites Données > Plus de filtres > Filtre standard.
Nom du champs : Mettez -aucun(e)-
Cliquez sur Options, cochez "sans doublons", cochez "Copier le résultat vers" et saisissez l'adresse de la cellule F1
Code: Tout sélectionner
$Feuille1.$F$1


Aperçu :
Image

:arrow: Nous avons maintenant une liste de dates sans doublon.

Aperçu :
Image


Nous allons maintenant nommer des plages pour simplifier la création de la formule qui va extraire les valeurs MIN et MAX selon la date.

Nommez la plage de données de la colonne A (exemple de nom DATECOMPLETE) et nommez la plage des jours de la colonne B (exemple de nom = JOURNEE)

Nous allons mettre les valeurs MAX en colonne G et les valeurs MIN en colonne H.

En G2, tapez la formule suivante !
Code: Tout sélectionner
=MAX(SI(JOURNEE=F2;DATECOMPLETE;""))

et valisez la formule en utilisant les touches CTRL + MAJ + ENTREE. Il s'agit là de valider la formule en tant que formule Matricielle.
Si la validation est correcte, vous verrez des accolades entourant votre formule.

Aperçu :
Image

Double-cliquez sur la poignée de recopie pour recopier la formule vers le bas.

Aperçu :
Image

Changez le format pour récupérer des dates.

Aperçu :
Image

Aperçu du résultat :
Image

En H2, faites la même chose mais avec la formule MIN au lieu de MAX.

Il vous suffira ensuite de copier les données puis de les coller ensembles et de les trier. Vous aurez pour chaque date la valeur MIN et la valeur MAX.

Aperçu du résultat final :
Image

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Garder 1ère et dernière ligne d'une série

Messagepar Ju' » 23 Mai 2016 13:32

Bonjour,

et mille mercis !!
Ce n'est pas tout à fait opérationnel pour mon jeu de données, mais je vais tâcher d'adapter la méthode ou le tri des min et max.

Merci encore !
Ju'
No0b
No0b
 
Messages: 4
Enregistré le: 18 Mai 2016 15:30

Re: [Résolu] Garder 1ère et dernière ligne d'une série

Messagepar Ju' » 13 Juin 2016 10:18

Autre solution :

Jour (de 1 à 31 de chaque mois de chaque année) en colonne B

Nouvelle colonne pour conserver la 1ère ligne : =SI(B2=B1;0;"premiere")
Nouvelle colonne pour conserver la dernière ligne : =SI(B2=B3;0;"derniere")

Supprimer les lignes pour lesquelles il y a un "0" dans chaque nouvelle colonne et conserver les lignes qui contiennent soit "premiere" soit "derniere" soit les 2 s'il n'y avait qu'une ligne pour la journée.

Voilà, c'est un peu plus simple :)
Ju'
No0b
No0b
 
Messages: 4
Enregistré le: 18 Mai 2016 15:30


Retourner vers Forum d'entraide : Bureautique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

  • Publicité