Calculer les Équivalents Temps Plein (ETP)

Modifié par Aurelie Bertrand le 2024/11/05 14:02

🙋 Ce tutoriel est à destination des utilisateurs avancés.

⏱ Il est prévu pour être suivi de manière autonome en 2 heures.



Introduction

Dans ce tutoriel, nous allons voir comment calculer le nombre d’ETP dans Digdash.
L'ETP OU Équivalent Temps Plein est une unité de mesure qui représente le travail d'un employé à temps plein. Il peut servir de base pour d'autres calculs comme l'effectif moyen.

Pour cela, nous allons utiliser plusieurs jeux de données fictifs :

  • Le fichier Excel Registre_RH.xls contenant des informations sur les employés de type identifiant, nom, prénom, âge, etc.
  • Le fichier CSV Contrats_RH contenant l’identifiant des employés, leur date de sortie et le nombre de jours travaillés; cette dernière donnée est considérée par semaine.
  • Le fichier CSV Calendrier_2020_2025 contenant les données calendaires, composé d’une seule colonne avec les dates du 01/01/2020 au 31/12/2025.

Pré-requis

 Afin de pouvoir effectuer ce tutoriel, il est requis de :

  • disposer d'une installation de DigDash Enterprise d'une version 2024R2 ou plus récente ;
  • faire partie en tant qu'utilisateur du groupe d'autorisation "Concepteur de modèles de données";
  • télécharger les fichiers "Registre_RH", “Contrats RH.csv” et “Calendrier_2020_2025.csv”

ℹ Les copies d'écran de ce tutoriel ont été réalisées avec le navigateur Chrome. Il peut y avoir de légères différences selon le navigateur.

Présentation des méthodes

Pour traiter ce sujet il existe deux méthodes ayant chacune leurs avantages et leurs inconvénients :

  • La première consiste à réaliser un produit cartésien entre nos deux jeux de données. L'intérêt est de garder l’ensemble des données et donc de conserver de l’interactivité avec les dimensions (par exemple, filtrage sur une date). L’inconvénient est la volumétrie des données. Ici cela donne : nombre de lignes de données RH (305) x nombre de lignes du calendrier (2191) soit 668 255 enregistrements.
     
  • La deuxième solution ne se base que sur les données RH et permet l’affichage de données prédéfinies (par exemple : ETP sur une année, un mois ou une période prédéfinie). L’avantage est une volumétrie limitée mais, en contrepartie, l'interactivité du tableau de bord sera plus limitée. Il ne sera pas possible de filtrer sur une date.

Étape 1 : Créer et configurer les modèles de données

Avant de pouvoir travailler avec les méthodes évoquées ci-dessus, il faut intégrer les différentes données dans Digdash. 

ℹ Cette étape est commune aux deux méthodes.

Modèle Registre_RH

Importer les données "Registre_RH"

Nous allons ici importer les données du fichier Excel "Registre_RH" (récupéré précédemment) qui représente les données de ressources humaines d’une entreprise fictive.

Pour cela :

  1. Lancez le Studio.
  2. Ouvrez l'onglet Modèles.
  3. Cliquez sur le bouton Nouveau modèle.
  4. Dans la boite Création d'un nouveau modèle de données, sélectionnez Tous types dans la rubrique Fichiers.
    Nouveau modèle
    ➡ La boîte Recherche de fichiers distants s’affiche.
  5. Dans la liste déroulante Serveur, sélectionnez “Common Datasources
  6. Cliquez sur le bouton Ajouter un fichier au serveur...
    Ajout fichier
  7. La boîte Sélection d’un fichier local ou d’une URL qui s’affiche, conservez la sélection par défaut Depuis votre ordinateur.
  8. Cliquez sur Parcourir pour sélectionner le fichier "Registre_RH_reformaté" récupéré précédemment.
  9. Cliquez sur OK.
    ➡ Le fichier est maintenant enregistré sur le serveur DigDash "Common Datasources" et accessible à tous les utilisateurs.

ℹ Si le serveur de document UserDocs est sélectionné les documents ne sont accessibles qu’à l’utilisateur les ayant déposés.

  1. Dans la boîte Recherche de fichiers distants, sélectionnez "Registre_RH_reformaté".
  2. Cliquez sur OK.

La boîte Fichier Excel s’affiche. Elle propose des options de sélection de données et une prévisualisation de celles-ci.

Les éléments de la première ligne du tableau correspondent aux types de données de chaque colonne. Nous allons donc les utiliser comme en-têtes de colonnes. Par exemple, ID Employé pour la colonne 1. Pour cela :

  • Dans la section Sélection des données, cochez la case Première ligne en tant que entête.
    Données importées

Nous pouvons maintenant passer à la configuration du modèle de données : cliquez sur le bouton Suivant en bas à droite pour ouvrir la fenêtre de configuration du modèle de données.

Configurer le modèle de données

La fenêtre de configuration du modèle de données s'ouvre sur l'onglet Colonnes

Le type détecté pour certaines colonnes n'est pas le bon. 
La colonne Age a été détectée comme une mesure. Or, elle sera utilisée ici comme une dimension. Pour modifier cela :

  1. Sélectionnez la colonne Age.
  2. Dans le champ Type en haut à droite, sélectionnez Dimension.
  3. Changez également le type de la colonne Code Postal : sélectionnez Dimension (géographique).

 Vosu pouvez alors enregistrer :

  • Cliquez sur Terminer et entrez un nom pour le modèle Registre_RH.

Modèle Contrats_RH

Importer les données "Contrats_RH"

Nous allons ici importer les données du fichier csv "Contrats_RH" contenant l’identifiant de l’employé, sa date de sortie et le nombre de jours travaillés.

Pour cela :

  1. Créez un nouveau modèle de même que précédemment et ajoutez le fichier Contrats_RH.csv sur le serveur de documents.
    ➡ La boîte Fichier Excel s’affiche avec la prévisualisation des données.
  2. Dans la section Sélection des données, cochez la case Première ligne en tant que entête.

Calculer l'ETP

Nous allons à présent calculer l’Equivalent Temps Plein (ETP) de chaque salarié à partir du nombre de jours travaillés par semaine à l'aide d'une transformation de données. Pour cela :

  1. Ajoutez une colonne vide.
  2. Cliquez sur l'en-tête de la colonne puis, dans le menu contextuel, sur Transformation des données.
    Column_added_FR.png

    ➡ L'onglet Transformation des données s'ouvre et affiche l'interface de création d'une transformation avec la colonne cible sélectionnée.
  3. Dans l'éditeur de scripts, entrez le code suivant :
if(values[2])
    return values[2]/5;
return 0;

Ici, values[2] correspond à la colonne “Nb jours travaillés”.
Data_transfo_FR.png

  1. Cliquez sur Appliquer.
    ➡ Vous pouvez visualiser le résultat obtenu dans la prévisualisation de la colonne.
  2. Cliquez sur le bouton Close_button.png pour terminer.
  3. Cliquez sur l'en-tête de la Colonne 3 pour la renommer : entrez Nb ETP.
    ➡ Vous obtenez ainsi le résultat suivant :
    Preview_Nb ETP_FR.png

Vous pouvez alors enregistrer :

  • Cliquez sur Terminer et entrez un nom pour le modèle : Contrats_RH.

Modèle de données RH_Complet

Nous allons à présent combiner les données les modèles “Registre_RH” et “Contrats_RH” précédemment créés en réalisant une jointure.
La jointure consiste à agréger les colonnes de plusieurs modèles grâce à au moins une correspondance de colonne que l'on appelle clé de jointure.
Vous pouvez consulter la page  Effectuer une jointure de données pour plus de détails.

  1. Comme précédemment, cliquez sur le bouton Nouveau modèle.
  2. Dans la boite Création d'un nouveau modèle de données, sélectionnez Jointure dans la rubrique Autres.
    ➡ La boite de dialogue Jointure s'affiche.
  3. Cliquez sur le bouton + à droite de la section Sources de données sélectionnées et sélectionnez le modèle de données Registre_RH.
  4. Répétez l'opération pour sélectionner le modèle de données Contrats_RH.
  5. Dans la section Colonnes clés, cochez la colonne ID Employé pour l'utiliser comme clé de jointure.
    Jointure
  6. Vous pouvez cliquer sur Suivant pour visualiser la liste des colonnes après jointure.
  7. Cliquez sur Terminer et nommez le modèle de données RH_Complet pour enregistrer.

Modèle de données Calendrier

ℹ Utilisé uniquement pour la première méthode "Produit cartésien".

Nous allons maintenant créer le modèle de données “Calendrier” basé sur le fichier “Calendrier_2020_2025.csv”.

Pour cela :

  1. Créez un nouveau modèle de même que précédemment et ajoutez le fichier “Calendrier_2020_2025.csv” sur le serveur de documents.
    ➡ La boîte Fichier Excel s’affiche avec la prévisualisation des données.
  2. Dans la section Sélection des données, cochez la case Première ligne en tant que entête.
    Calendar_data_imported_FR.png

     
  3. Cliquez sur Terminer et entrez un nom pour le modèle : Calendrier.

Application de la méthode “Produit cartésien”

❗Le produit cartésien est ici utilisé pour un cas particulier, dans un cadre contrôlé et avec des données limitées. Si ces prérequis ne sont pas respectés des problèmes de performances et de mémoire peuvent apparaître.

Afin de pouvoir réaliser un produit cartésien entre nos deux modèles de données “Calendrier” et “RH_Complet”, il est nécessaire d’avoir une colonne commune avec les valeurs identiques dans les deux modèles. Pour cela, nous allons modifier les deux modèles précédemment créés et ajouter une colonne qui servira de clé de jointure.

Étape 2 : Effectuer une jointure des modèles de données Calendrier et RH_Complet

Nous allons ici combiner les données du modèle Calendrier et RH_Complet. Pour cela, nous devons d'abord modifier les modèles afin de disposer d'une clé de jointure.

Modifier le modèle Calendrier

  1. Editez le modèle de données Calendrier.
  2. Ajoutez une colonne vide.
  3. Ouvrez l'onglet Transformation des données...
  4. Cliquez sur Ajouter pour créer une nouvelle transformation de données.
    ➡ L'interface Création de la transformation s'affiche.
  5. Sélectionnez la colonne Column1 dans la liste déroulante Colonne cible.
  6. Entrez le code suivant dans l'éditeur de scripts :
    return 'a';
  7. Cliquez sur Appliquer puis le bouton Close_button.png pour terminer.
  8. Cliquez sur l'en-tête de la colonne puis Renommer pour donner le nom Jointure à la colonne.
    Calendar_join_column_added_FR.png
  9. Cliquez sur Terminer pour enregistrer.

Modifier le modèle RH_Complet

Nous allons modifier le modèle RH_Complet par l'intermédiaire  du modèle RH_Contrats.

  1. Éditez le modèle de données RH_Contrats.
  2. Ajoutez une deuxième colonne.
  3. Effectuez les mêmes opérations que dans le paragraphe précédent (modèle Calendrier).
  4. Cliquez sur Terminer pour enregistrer.
    ➡ Un message vous avertit de la mise à jour des modèles dépendants.
    Modèles dépendants
  5. Cliquez sur OK.
    ➡ De cette manière, la colonne remonte dans le modèle “RH Complet” : 
    RH_Complet_Jointure.png

Effectuer la jointure des modèles RH_Complet et Calendrier

Nous allons à présent combiner les modèles RH_Complet et Calendrier en réalisant une jointure.

  1. Créez un nouveau modèle de données Jointure comme dans le paragraphe Modèle de données RH_Complet.
  2. Ajoutez le modèle RH_Complet puis le modèle Calendrier.
  3. Cochez la colonne Jointure dans la section Colonnes clés.
    Jointure

Étape 3 : Calculer la somme des ETP

Pour continuer, sur l’écran suivant, nous allons créer une mesure calculée nous donnant la somme des ETP :

  1. Cliquez sur Suivant pour afficher la liste des colonnes.
  2. Cliquez sur le bouton Nouvelle mesure puis sur Mesure calculée (utilisateur avancé).
    https://lh7-rt.googleusercontent.com/docsz/AD_4nXfcztsVBA3g3CYoqD80oyuNUS12tWlptIiSTyAhEnneLgrWhnGl_qbUmZSESb-oarpeZ5SKM_8DxNu-k_8axjQjz9IiWLCwMkel6BXI6M5URLMP3PSOo1ibaDLiK1xkyqrsAT-2--jfNtoU0Bje1-HYQW0?key=W9o4dMeRmKGczVQnM4FwvA
  3. Entrez le code suivant:

❗ Les références à des champs (<Date>, <Date Entrée>, <Date de sortie> et <Nb ETP>) doivent être insérées via un glisser-déposer ou un double-clic depuis le panneau des Mesures/Dimensions pour que cela fonctionne dans votre environnement.

if (new Date(<Date Entrée>*1000) <= new Date(<Date>*1000)
   && (new Date(<Date de sortie>*1000) >= new Date(<Date>*1000)
       || <Date de Sortie>=='null'))
{
   return <Nb ETP>;
}
return 0;
  1. Entrez le nom de la mesure : Somme ETP.
  2. Décochez la case Calcul après agrégation.
    Mesure calculée
  3. Cliquez sur OK.
    ➡ La mesure est ajoutée à la liste des colonnes.
  4. Cliquez sur Terminer et nommez le modèle ETP produit cartésien.

Étape 4 : Créer un tableau Somme des ETP par service

Nous pouvons alors créer un tableau affichant la somme des ETP par service pour visualiser le résultat.

  1. Depuis l'onglet Modèles, cliquez sur le bouton Nouveau flux.
  2. Dans la boite Créer un flux de type graphique ou fabrique de documents, sélectionnez Tableau.
  3. Sélectionnez le modèle de données ETP produit cartésien.
  4. Glissez-déposez la dimension Service puis la mesure Somme ETP.
  5. Avec un filtrage sur la date au 01/01/2023, vous devriez obtenir le tableau suivant :
    Flux_ETP_Service.png
     

Application de la méthode modèle “RH_Complet” seul

Pour cette seconde méthode, nous allons travailler sur les ETP gagnés, perdus et stables sur l’année courante. Nous obtiendrons, dans cet exemple, les résultats à la date du jour.

Pour cela, il est nécessaire de déterminer trois valeurs : les ETP de l’année N, de l’année N-1 et le cumul des deux. Grâce à ces données nous serons en capacité de connaître le nombre d’ETP sur l’année en cours mais également les variations (nouveaux salariés et sortants). Nous allons donc créer 3 nouvelles mesures calculées dans le modèle “RH Complet”.

Étape 2 : Créer les mesures ETP N, ETP N-1 et ETP N & N-1

  1. Éditez le modèle de données RH_Complet.
  2. Cliquez sur Suivant pour aller à l'onglet Colonnes.
  3. Créez une nouvelle mesure calculée (utilisateur avancé).

❗ Les références à des champs (<Date>, <Date Entrée>, <Date de sortie>, <Nb ETP>...) doivent être insérées via un glisser-déposer ou un double-clic depuis le panneau des Mesures/Dimensions pour que cela fonctionne dans votre environnement.

Mesure ETP N

Pour calculer les ETP de l'année N :

  1. Entrez le code suivant :
var dateinit = new Date(new Date(Date.now()).getFullYear(),00,01);

if(new Date(<Date Entrée>*1000) <= new Date(Date.now()))
   if(<Date de sortie> == 'null' || new Date(<Date de sortie>*1000)  >= dateinit)
       return <Nb ETP>;
return 0;
  1. Entrez le nom de la mesure: ETP N.
  2. Décochez la case Calcul après agrégation.
    Mesure ETP N
  3. Cliquez sur OK.

Mesure ETP N-1

Pour calculer les ETP de l'année N-1 :

  1. Entrez le code suivant :
var dateinit = new Date(new Date(Date.now()).getFullYear()-1,00,01);
var datefin = new Date(new Date(Date.now()).getFullYear()-1,11,31);

if(new Date(<Date Entrée>*1000) <= datefin)
   if(<Date de sortie> == 'null' || new Date(<Date de sortie>*1000)  >= dateinit)
       return <Nb ETP>;
return 0;
  1. Entrez le nom de la mesure: ETP N-1.
  2. Décochez la case Calcul après agrégation.
    Mesure ETP N-1
  3. Cliquez sur OK.

Mesure ETP N & N-1

Pour calculer le cumul des ETP de l'année N et N-1 :

  1. Entrez le code suivant :
var dateinit = new Date(new Date(Date.now()).getFullYear()-1,00,01);
var datefin = new Date(new Date(Date.now()).getFullYear(),11,31);

if(new Date(<Date Entrée>*1000) <= datefin)
   if(<Date de sortie> == 'null' || new Date(<Date de sortie>*1000)  >= dateinit)
       return <Nb ETP>;
return 0;
  1. Entrez le nom de la mesure: ETP N & N-1.
  2. Décochez la case Calcul après agrégation.
    Mesure ETP N & N-1
  3. Cliquez sur OK.
  4. Cliquez sur Terminer pour enregistrer les modifications.

Étape 3 : Créer les mesures ETP gagnés, perdus et stables

À partir de là, il ne reste plus qu’à calculer les écarts entre ces valeurs pour avoir les mesures désirées : 

  • Les ETP gagnés représentent les nouveaux entrants sur l’année en cours
  • Les ETP perdus représentent les sortants entre l’année précédente et l’année en cours
  • Les ETP stables représentent les autres qui n’ont réalisé aucun mouvement

Pour cela, nous allons créer 3 nouvelles mesures calculées de même que précédemment avec les propriétés suivantes.

❗ Les références à des champs (<ETP N><ETP N-1>...) doivent être insérées via un glisser-déposer ou un double-clic depuis le panneau des Mesures/Dimensions pour que cela fonctionne dans votre environnement.

Mesure ETP gagnés

  1. Entrez le code suivant :

return <ETP N & N-1(sum)>-<ETP N-1(sum)>;
  1. Entrez le nom de la mesure: ETP gagnés.
  2. Laissez la case Calcul après agrégation cochée.
  3. Cliquez sur OK.

Mesure ETP perdus

  1. Entrez le code suivant :

return <ETP N & N-1(sum)>-<ETP N(sum)>;
  1. Entrez le nom de la mesure: ETP perdus.
  2. Laissez la case Calcul après agrégation cochée.
  3. Cliquez sur OK.

Mesure ETP stables

  1. Entrez le code suivant :

return <ETP N-1(sum)>-<ETP Perdus(NO_AGG)>;
  1. Entrez le nom de la mesure: ETP stables.
  2. Laissez la case Calcul après agrégation cochée.
  3. Cliquez sur OK.

Vous devez ainsi obtenir les colonnes suivantes :

Méthode2_all_mesures.png

Cliquez sur Terminer pour enregistrer.

Étape 4 : Vérifier le résultat

Afin de vérifier le résultat, nous allons créer un tableau affichant les ETP gagnés, perdus et stables par service.

  1. Depuis l'onglet Modèles, cliquez sur le bouton Nouveau flux puis sélectionnez Tableau.
  2. Sélectionnez le modèle de données RH_Complet.
  3. Glissez-déposez la dimension Service puis les 3 mesures ETP gagnés, ETP perdus et ETP stables.
    ➡ Vous devriez obtenir le résultat suivant. Nous constatons que durant cette année, nous ne faisons que perdre des employés et aucune entrée n’a eu lieu. Cela est normal au vu des dates de notre jeu de données.
    ETP GPS par service.png
  4. Renommez le flux et cliquez sur OK pour enregistrer.

Félicitations!

Vous avez réussi à créer un suivi des ETP.
Il ne vous reste plus qu'à l'appliquer à vos données!