Fonction complexe, calcul en fonction de date

Y compris Power BI, Power Query et toute autre question en lien avec Excel
S
Send
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 5 août 2014
Version d'Excel : 2010

Message par Send » 3 novembre 2017, 12:03

Bonjour,

Je suis de nouveau bloquée et j'aurai besoin de votre aide.
Vous trouverez ci joint mon tableau.

Ce tableau récapitule les absences santé, ce que je souhaiterais faire c'est avoir le nombre d'arrêt en fonction de la durée totale de l'absence.
C'est à dire qu'un arrêt qui est prolongé (donc les dates se suivent) est considéré comme un seul arrêt.
Un arrêt est consécutif lorsque les dates se suivent, concerne la même personne et que le motif d'absence soit identiques (je n'ai pas réussi à intégrer un critère supplémentaire)
J'ai essayé avec une formule mais cela ne me convient pas.
J'aimerai compléter le tableau sur le fichier qui indique le nombre d'arrêt en fonction de la durée...
Pourriez-vous m'aider à compléter les éléments manquants (en jaune) ?

D'avance, merci.
test.xls
(23 Kio) Téléchargé 19 fois
S
Send
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 5 août 2014
Version d'Excel : 2010

Message par Send » 3 novembre 2017, 14:27

Re-bonjour,
J'ai également oublié de préciser que les lignes ne sont pas forcément dans l'ordre alphabétique et chronologique...
Si cette variable pouvait être prise en compte, ca serait top.
Merci bcp.
S
Send
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 5 août 2014
Version d'Excel : 2010

Message par Send » 6 novembre 2017, 09:09

Bonjour,
Personne pour m'aider ?
Merci et bonne journée.
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'855
Appréciations reçues : 340
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 6 novembre 2017, 09:56

Bonjour,

solution via une macro
Sub aargh()
    With Sheets("feuil1")
        .Columns(1).Insert shift:=xlToRight
        dl = .Cells(1, 2).End(xlDown).Row
        For i = 1 To dl
            .Cells(i, 1) = i
        Next i
        .Range("H2:H" & dl).ClearContents
        .Range("A1:I" & dl).Sort key1:=.Range("B1"), order1:=xlAscending, key2:=.Range("C1"), order2:=xlAscending, Header:=xlYes
        cle = ""
        ldate = 0
        For i = 2 To dl + 1
            If .Cells(i, "B") & .Cells(i, "G") <> cle Or ldate + 1 <> .Cells(i, "C") Then
                If cle <> "" Then
                    .Cells(i - 1, "H") = jc
                End If
                jc = .Cells(i, "F")
                cle = .Cells(i, "B") & .Cells(i, "G")
                ldate = .Cells(i, "D")
            ElseIf ldate + 1 = .Cells(i, "C") Then
                jc = jc + .Cells(i, "F")
                ldate = .Cells(i, "D")
            End If
        Next i
        .Range("A1:I" & dl).Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlNo
        .Columns(1).Delete shift:=xlLeft
    End With
End Sub
S
Send
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 5 août 2014
Version d'Excel : 2010

Message par Send » 6 novembre 2017, 17:53

Merci je vais essayer.
Bonne soirée
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message