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

Macros et VBA Excel Discussion :

Moyenne mobile avec condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut Moyenne mobile avec condition
    Bonjour,

    J'ai bsoin de votre aide.
    Je voudrais calculer une moyenne mobile à plusieurs conditions.

    Chaque mois un produit est livré ou non au client.
    Si le produit est livré le meme mois et la meme année on calcule la moyenne mobile des délais de livraison de tous les prduits et on mets dans la colonne correspondante le résultat.

    Exemple si 10 produits livrés en juin 2012 avec un délai moyen de 100jrs chaque ligne correspondant à ces produits doit contenir 100.

    Cela servirai à une représentation graphique par mois et par an des produits livrés en délais et moyenne mobile

    je joins un fichier correspondant.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Tu es sure de vouloir une macro ? la formule suivante fait bien l'affaire (en F2, matricielle, à valider avec Ctrl+Maj+Entrée ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MOYENNE(SI(($A$2:$A$3703=A2)*($C$2:$C$3703=C2)*($D$2:$D$3703=D2)>0;$E$2:$E$3703))
    à reproduire vers le bas.

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Merci pour ta réponse,

    Je souhaite trouver le moyen de le faire avec une macro et avoir les valeurs dans la colonne.

    Tu penses que c'est possible?

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Voilà j'ai essayé un code mais il n'est pas complet pour prendre mes conditions (année et mois)

    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
    Dim plage, plage1, plage2 As Range               
    derligne = Sheets("extraction").Range("A65536").End(xlUp).Row    
    Set plage1 = Sheets("extraction").Range(Cells(2, 4), Cells(derligne, 4))                
    For Each cel In plage
     
            annee_depart = cel.Offset(rowOffset:=0, columnOffset:=-2).Value
            mois_depart = cel.Offset(rowOffset:=0, columnOffset:=-1).Value
     
     
                Select Case annee_depart
                Case Is <> ""
     
                If annee_depart And mois_depart Then
     
                cel.Offset(rowOffset:=0, columnOffset:=1).Value = WorksheetFunction.Average(plage1)
     
    Next cel
    qu'elqu'un peut m'aider?

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    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
        With Sheets("extraction")
     
     
      Range("A2:F65000").Select
        Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess
     
            LastRow = .Cells(.Rows.Count, 3).End(xlUp).Row
            For i = LastRow To 2 Step -1
                If .Cells(i, 3).Value = .Cells(i - 1, 3).Value And .Cells(i, 4).Value = .Cells(i - 1, 74).Value Then
     
                    t = .Cells(i - 1, 5).Value + .Cells(i, 5).Value
     
     
                    .Cells(i - 1, 6).Value = t / 2
                    .Cells(i, 6).Value = t / 2
     
                End If
             Next j
            Next i
        End With
    Cet autre code me donne uniquement la moyenne 2 par 2 j'aiemrais letendre à toute les lignes concernées en gros si c'est du SQL ce serai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT base.`liv_année`, base.`Recep_mois`, Avg(base.`Moy`) AS 'TAT (RA)'
    FROM base base
    GROUP BY base.`Dispatch Year`, base.`Dispatch Month`

    a l'aide

Discussions similaires

  1. [XL-2010] Moyenne pondérée avec condition
    Par Nicolas751 dans le forum Conception
    Réponses: 7
    Dernier message: 06/05/2015, 19h40
  2. [XL-2010] Formule moyenne pondérée avec condition:
    Par letudiant68 dans le forum Excel
    Réponses: 3
    Dernier message: 20/05/2014, 15h08
  3. [2.5] Calcul Moyenne mobile avec birt
    Par ccmoi dans le forum BIRT
    Réponses: 10
    Dernier message: 29/06/2010, 09h28
  4. Graph croisé dynamique avec moyennes mobiles.
    Par alex830001 dans le forum Excel
    Réponses: 1
    Dernier message: 30/07/2008, 23h27
  5. Moyenne avec condition
    Par eillon dans le forum Excel
    Réponses: 4
    Dernier message: 31/07/2007, 07h36

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