IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Calculs de valeurs consecutive


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2019
    Messages : 34
    Par défaut Calculs de valeurs consecutive
    Bonjour à tous,

    Je fais appel à vous car je bloque depuis quelques jours sur une requête. Je voudrais calculés le nombre de jours qu'un achat a été réalisé consécutivement. Pour cela, j'ai recodé la variable Achat en 0/1. ce que je souhaiterais c'est faire la somme de tous les 1 tant qu'il n'y a pas de 0 apparaissant. Je voudrais grouper cela par acteur. Je ne sais pas si cela a été clair ou pas. Ainsi, je vous propose un fichier Excel avec mon fichier de base et les résultats souhaités pour que vous puissiez mieux comprendre.
    exemple.xlsx

    Merci d'avance pour votre retour.
    Cordialement.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Une solution simple est de créer une nouvelle colonne comptant incrémentant un compteur tant que la colonne Achat est à 1 et revenant à 0 sinon.
    Par exemple, si "Achat" est en colonne A et commence à la ligne 1, mettre en B2 =SI(A2=1;B1+1;0) et copier B2 dans les lignes du dessous.
    Il suffit ensuite d'une fonction MAX() pour connaitre la taille de la suite la plus longue.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2019
    Messages : 34
    Par défaut
    Bonjour,

    merci pour votre retour. Mais comment puis-je faire pour que cela se groupe par acteur ? Et pour afficher la date dans les tableaux de mes résultats souhaités ?

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il suffit de faire une colonne par acteur et de rajouter une condition dans la colonne du SI.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2019
    Messages : 34
    Par défaut
    Je suis désolée, je ne vois pas très bien ce que vous voulez dire. Pourriez-vous me fournir un exemple de formule via un fichier Excel si cela ne vous dérange pas ?

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    j'ai lu sur le net que des nouvelles fonctions telle que MIN.SI.ENS et MAX.SI.ENS disponible avec Excel 2016 / Office 365 je crois que ces fonctions réponds en partie à tes besoins..
    Pour ton cas j'ai essayer de bricolé un code
    à tester avec prudence sur une copie de ton fichier...je suis qu'un autodidacte qui supporte aucune responsabilité en cas de perte des données
    code plein de bricolage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub test()
    Application.ScreenUpdating = False
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Set F1 = Sheets("Feuil2")
    Set F2 = Sheets("RESULTAT")
      F2.Cells.ClearContents
    Dim unique As New Collection
    Dim i As Integer
    On Error Resume Next
    For Each cel In F1.Range("A2:A" & [A65000].End(xlUp).Row)
    If F1.Cells(cel.Row, 2) <> 0 Then
        unique.Add cel.Value, CStr(cel.Value)
        End If
    Next cel
     F2.Cells(1, 1).Resize(1, 4) = Array("Acteur", "periode Debut", "Periode Fin", "Nombre de validation")
    ligne = 2
    On Error GoTo 0
    For i = 1 To unique.Count
    F2.Cells(ligne, 1) = unique(i)
    ligne = ligne + 1
    Next i
     
    Dim derlig As Long
    Dim lngNumLigne As Long
    derlig = F2.Cells(Rows.Count, 1).End(xlUp).Row
    For L = 2 To derlig
    F2.Cells(L, 4) = WorksheetFunction.CountIfs(F1.Columns("A"), F2.Cells(L, 1), F1.Columns("C"), 1)
    Next L
    For J = 2 To derlig
    F1.Range("A1:C" & derlig).AutoFilter Field:=1, Criteria1:=F2.Cells(J, 1)
     Dim Lig As Long
    Lig = F1.Range("A2:A" & derlig).SpecialCells(xlCellTypeVisible).Row
    F2.Cells(J, 2) = F1.Cells(Lig, 2)
    For Each cell In F1.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
        lngNumLigne = cell.Row
    Next cell
    F2.Cells(J, 3) = F1.Cells(lngNumLigne, 2)
    F1.ShowAllData
    Next J
    Application.ScreenUpdating = True
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 23h20
  2. calcul de valeurs présentes dans une liste de résultat
    Par Makaveli33 dans le forum Access
    Réponses: 8
    Dernier message: 15/05/2006, 19h03
  3. Problème champs calculés et valeur null
    Par markintell dans le forum Access
    Réponses: 18
    Dernier message: 10/01/2006, 18h14
  4. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  5. [Debutant]calcul de valeurs propres, givens-householder
    Par malbarre dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 18/08/2005, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo