Transformation d'un tableau Excel

Bonjour à tous , j'espère que vous portez bien.

Dans le cadre de mon stage de fin d'études , j'ai besoin de transformer une table de données.

Un exemple de ma table est ci-dessous :

Une journée de production par employé est représentée par 7 lignes avec l'heure de début et de fin de prod , idem pour les petites pauses et la pause repas.

tableau1

Je souhaite avoir une ligne par employé par journée comme présenté avec le tableau ci-dessous :

Avec l'heure de début et de fin de JOURNEE , idem pour la pause repas et les deux petites pauses sachant que les activités de production sont différents selon chaque employé.

tableau 3

Si vous avez des solutions à me proposer même avec un logiciel de traitement de bases de données ( SQL , R ou PYTHON )

Je vous remercie d'avance pour votre aide

Achraf

Bonjour

A première vu, je dirait un power query, fusion des colonnes d'heure de début et de fin puis passage des activités en colonne.

Bonjour à tous,

En Sql la requête Vba peut être du genre (avec double jointure sur 2 tables virtuelles) :

     Req = "SELECT D.`Num employé`,D.`Date`, " & _
          " MIN(D.`Heure de début d'activité`) AS `Heure de début de journée`," & _
          " MAX(D.`Heure Fin d'activité`) AS `Heure de fin de journée`," & _
          " MIN(R.`Heure de début d'activité`) AS `Heure de début de repas`," & _
          " MAX(R.`Heure Fin d'activité`) AS `Heure de fin de repas`," & _
          " MIN(P.`Heure de début d'activité`) AS `Début petite pause n°1`," & _
          " MIN(P.`Heure Fin d'activité`) AS `Fin petite pause n°1`," & _
          " MAX(P.`Heure de début d'activité`) AS `Début petite pause n°2`," & _
          " MAX(P.`Heure Fin d'activité`) AS `Fin petite pause n°2`" & _
          " FROM ([Données$A:E] AS D" & _
          " LEFT JOIN " & _
          " (SELECT * FROM [Données$A:E] WHERE `Activité`='Pause repas') AS R " & _
          " ON R.`Num employé`=D.`Num employé`)" & _
          " LEFT JOIN " & _
          " (SELECT * FROM [Données$A:E] WHERE `Activité`='Petite pause') AS P " & _
          " ON P.`Num employé`=D.`Num employé`" & _
          " GROUP BY D.`Num employé`,D.`Date`"

Pour ce résultat :

demo sql

Voici le fichier correspondant, à voir avec de vraies données ...

13demo-sql.xlsm (32.61 Ko)

Pierre

Edit de 10h28 : @Urindil => pourquoi ce "vote" négatif?? Serait-ce de l'acrimonie??

Rechercher des sujets similaires à "transformation tableau"