Formule conditionnelle contrat de travail

Accueil – Le CFO masqué Forums Power Query Formule conditionnelle contrat de travail

  • Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par Daniel, le il y a 8 mois.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #141786
    guillaume.perrissin
    Participant

    Bonjour,

    Merci par avance à toutes celles et ceux qui prendront le temps de me répondre.

    j’aurais besoin de votre aide pour m’aider à créer la formule appropriée dans powerquery.
    j’ai une liste de contrat de travail par employé avec une ligne par renouvellement de contrat.
    En cas de sortie du salarié, une date de sortie apparaît uniquement sur le dernier renouvellement.

    j’aimerais indiquer dans une colonne “SORTIE”, “Oui” sur toutes les lignes des contrats de travail et pas seulement sur la ligne ou la date de sortie apparaît.
    les salariés qui n’ont pas de date de sortie seront indiqués “Non” sur chacune des lignes de leurs contrats.

    Je joins le fichier pour une meilleure compréhension,

    Guillaume

    Attachments:
    You must be logged in to view attached files.
    #141930
    ludo.regnier
    Participant

    Bonjour
    Je ne connais pas bien power query mais si cela peut t’aider à avancer (je vois que tu n’as pas encore reçu d’autres réponses), voici comment je procéderai : si ton fichier est exactement celui que tu présentes je ferai simplement un “remplir” “vers le haut” dans la colonne sortie (ou après avoir dupliqué la colonne sortie). Si ton fichier peut se présenter différemment et pour éviter les problèmes potentiels d’homonymie des salarié je conseillerai d’ajouter dans la table de départ un numéro d’identifiant unique par salarié (même identifiant quelque soit le contrat). Ensuite je créerai une requête à partir de la table source, supprimerai les colonnes autres que identifiant et sortie, puis filtrerai sur Sortie différent de vide. Ensuite je fusionnera la table source et la nouvelle table créée avec identifiant comme clé.
    mais il existe sans doute des solutions encore plus simples. Bon courage

    #141931
    ludo.regnier
    Participant

    Erratum : tu l’auras compris, il faut filtrer sur la colonne “date de sortie” bien sur et pas directement sur “sortie” qui est la colonne du resultat

    #141952
    Daniel
    Participant

    Bonjour Guillaume, Ludo, le Forum,
    Je propose la solution suivante (attention, j’ai gardé la colonne Sortie de ton exemple, il ne faut pas la prendre en compte dans tes données d’origine)

    Début de la requête

    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Prénom du salarie”, type text}, {“Nom d’usage du salarie”, type text}, {“Date d’embauche”, type datetime}, {“Date de fin de contrat prevue”, type datetime}, {“Date de sortie”, type any}, {“Sortie”, type text}}),
    RemplacerVidesParNull = Table.ReplaceValue(ModificationTypeDonnees,”(vide)”,null,Replacer.ReplaceValue,{“Date de sortie”}),
    GroupSalaries = Table.Group(RemplacerVidesParNull, {“Prénom du salarie”, “Nom d’usage du salarie”}, { {“AllRows”, each Table.FillUp(_,{“Date de sortie”}), type table [Prénom du salarie=nullable text, #”Nom d’usage du salarie”=nullable text, #”Date d’embauche”=nullable datetime, Date de fin de contrat prevue=nullable datetime, Date de sortie=nullable datetime, Sortie=nullable text]}}),
    AjoutColSortie = Table.AddColumn(GroupSalaries, “SortieNew”, each Table.AddColumn([AllRows], “SortieNew”, each if [Date de sortie] = null then “Non” else “Oui”)),
    CombineTables = Table.Combine(AjoutColSortie[SortieNew])
    in
    CombineTables

    Fin de la requête

    En espérant avoir pu t’aider.
    Cordialement
    Daniel

    #141953
    Daniel
    Participant

    Bonjour Guillaume, Ludo, le Forum,

    J’ai oublié de joindre le fichier excel d’origine avec ma petite contribution.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.