Transformation d'une série de données dans une colonne en une période

Bonjour,

Je fais une nouvelle fois appel à a communauté afin de m'aider à solutionner un problème dont je ne vois pas la solution.

Je travaille sur des dizaines de milliers de lignes. Notamment sur des prestations de personnel intérimaire.

En fait, je devrais transformer une succession de dates dans mon exemple les données se présentent de la manière suivante :

19862095 X 02-01-2025
19862095 X 03-01-2025
19862095 X 04-01-2025

Mon souci est que je dois avoir ces mêmes données mais en période : dans mon exemple : du 02-01-202 au 04-01-2025.

Si il y a un espace entre deux dates, la deuxième date est le début d'une nouvelle période. Etc.. .

J'ai essayé avec transposer mais cela n'aide pas vraiment.

24pager01.xlsx (12.79 Ko)

Je ne vois pas quelle fonction, la plus simple possible peut être utilisée.

Je joins quelques exemples dans le fichier en attachement.

Je vous remercie d'avance pour votre aide.

Antoine G.

Salut Antoine,

Un double-clic sur la feuille t'affiche le résultat en [K1] (pour l'instant)

For x = 2 To UBound(tTab1, 1)
    iOK = 0
    If lgMat <> tTab1(x, 1) Then iOK = 1
    If x > 2 Then _
        If lgMat = CLng(tTab1(x, 1)) And (CLng(tTab1(x, 3)) - CLng(tTab1(x - 1, 3))) >= 2 Then iOK = 1
    If iOK = 1 Then _
        iIdx = iIdx + IIf(iIdx = 0, 2, 1): _
        lgMat = CLng(tTab1(x, 1)): _
        ReDim Preserve tTab2(3, iIdx): _
        tTab2(0, iIdx - 1) = tTab1(x, 1): _
        tTab2(1, iIdx - 1) = tTab1(x, 3)
    tTab2(2, iIdx - 1) = tTab1(x, 3)
Next
14tooniesgamer.xlsm (19.21 Ko)

A+

Bonsoir Philippe,

Merci pour ton aide.

Mais je suis confus. Je ne vois pas ce que je dois faire....

Je ne maîtrise pas du tout ces codes.

Bonsoir,

Une solution avec Power Query :

let
  Source = Excel.CurrentWorkbook(){[Name = "DonneesDepart"]}[Content], 
  Type = Table.TransformColumnTypes(
    Source, 
    {{"Matricule", Int64.Type}, {"Nom", type text}, {"Date", type date}}
  ), 
  Tri = Table.Sort(Type, {{"Matricule", Order.Ascending}, {"Date", Order.Ascending}}), 
  Index = Table.AddIndexColumn(Tri, "Index", 0, 1, Int64.Type), 
  Groups = Table.AddColumn(Index, "Groups", each Number.From([Date]) - [Index]), 
  Groupage = Table.Group(
    Groups, 
    {"Matricule", "Groups"}, 
    {
      {"DateDébut", each List.Min([Date]), type nullable date}, 
      {"DateFin", each List.Max([Date]), type nullable date}
    }
  ), 
  SupprCol = Table.RemoveColumns(Groupage, {"Groups"})
in
  SupprCol

A+

Bonsoir,

Tu double-cliques n'importe où sur la feuille 'Details' pour démarrer la macro, simplement.

image

Le code sur trouve dans la feuille 'Details'. Tu fais ALT-F11 pour l'afficher directement dans l'éditeur de code.

Pour affiner tout cela en fonction de tes habitudes de travail ou d'une structure de feuille peut-être différente, il faudra nous en dire plus!
"Nouvelle" version avec affichage en [E1].

12tooniesgamer.xlsm (18.75 Ko)

J'attends tes instructions!

A+

Ah, oui, je comprends maintenant ton souci!

ALT-F11 affiche le code. Tu peux voir à gauche qu'il se trouve dans 'Details'
Tu copies le code à droite -> CTRL-C

image

Tu ouvres ton fichier de travail -> ALT-F11 -> double-clic à gauche sur 'Details' pour ouvrir l'éditeur -> CTRL-V
Après cela, tu enregistres (Enregistrer sous) ton fichier (CHANGE le nom par sécurité) au format XLSM, prenant en charge les macros.

image

Devrait aller!

Salut à tous, 🙂

Sur le principe, je trouve que la demande ressemble un peu à ceci : une fusion d'éléments identiques sur 2 colonnes.

https://forum.excel-pratique.com/excel/fusion-automatique-des-cellules-en-doublon-vba-192946

klin89

Bonjour OOoiste

Pourrais tu mettre le code directement dans mon fichier ?

Je ne maîtrise pas bien ces commandes.

Je ne vois pas comment intégrer ce code.

Merci d'avance pour ton aide.

Ce sera plus facile pour tester.

Bonjour Philippe,

Je teste .... mais cela ne va pas !

J'essaie encore de faire Tourner cette macro.

AG

Bonjour OOoiste

Pourrais tu mettre le code directement dans mon fichier ?

Je ne maîtrise pas bien ces commandes.

Je ne vois pas comment intégrer ce code.

Merci d'avance pour ton aide.

Ce sera plus facile pour tester.

Voici (Alt+F12 pour accéder à la requête).

14toonies-pq.xlsx (19.73 Ko)

Si tu modifies les données de départ, Clic-droit Actualiser sur le tableau final.

Salut Tooniesgamer,

ah, un double-clic qui ne veut pas se laisser faire! Aurais-tu un Excel rebelle?

Sans doute une restriction de sécurité...
Sans uvrir le fichier, va dans l'explorateur de fichiers et localise le fichier.
Clic droit sur le fichier -> Propriétés

image

Dans la section Attributs, en bas, tu as sans doute une checkbox "Débloquer" sous "Lecture seule" et "Caché" : coche-la -> Appliquer.

Ouvre ton fichier, ça devrait aller.

antoine

Est-ce bien cela, le problème?

A+

Bonjour à tous,

Peut être que le demandeur aimerait ça sous forme de formule ?

P.

Bonsoir,

Je vous remercie une nouvelle fois pour votre aide.

J'ai testé le fichier avec Power Query et ce fonctionne très bien.

Pour Philipe, je ne parviens pas à cliquer 2 fois ! Rien ne se passe.

Je vois que tu as donné une nouvelle procédure. Je vais checker cela ce soir.

Rechercher des sujets similaires à "transformation serie donnees colonne periode"