Fonction somme conditionnelle par année et département

Bonjour,

J'aimerais faire la somme d'un taux par année et par département. J'ai 10 années et à chaque fois 96 départements.

Je sais comment faire la somme conditionnelle en précisant chaque année et chaque département pris à part, mais comment rendre cette opération automatique en disant à excel de faire la somme pour chaque années de 2006 à 2016 pour chaque département de 01 à 96 ?

Dans l'image en exemple cela adonnerait quelque chose comme

2006 01 7.962%

2006 02 23.283%

2007 01 14.634%

2007 02 10.329%

etc...

Je vous remercie par avance!

untitled

bonjour

au pif car pas de PJ

1) trier sans double les anneés et les departements dans un petit tablo annexe

2)en troisième colonne =sommeprod((plage des années du tablo source=l'annéé triée)*(plagedes departements = departement trié) *(plage de taux))

facile

cordialement

Bonjour, merci pour la réponse rapide! Si je fais comme vous dîtes, je devrais écrire cette opération pour chaque année et pour chaque département, donc avec 10 années et 96 départements cela fait beaucoup... Comment rendre cette opération "automatique" ?

J'ai mis en PJ un exemple de ma base de données.

Cordialement

10classeur3.xlsx (9.04 Ko)

Bonjour le forum,

Avec cette présentation ?

bonjour

un essai vite fait

11wlamh.xlsx (9.60 Ko)

avec une petite Mfc ce sera plus parlant

cordialement

re

voila avec les 2 propositions

11wlamh2.xlsx (13.01 Ko)

cordialement

Bonjour,

à quoi ça sert de poster une question simpliste sur plusieurs forums si c'est pour y lire les même propositions, devoir apporter les même précisions, etc ?

eric

Bonjour,

à quoi ça sert de poster une question simpliste sur plusieurs forums si c'est pour y lire les même propositions, devoir apporter les même précisions, etc ?

eric

c'est la peur du manque

Bonsoir à tous,

Version VBA :

Option Explicit
Sub test()
Dim a, e, i As Long, j As Long
Dim dico As Object, AL As Object
    Set dico = CreateObject("Scripting.Dictionary")
    Set AL = CreateObject("System.Collections.ArrayList")
    a = Sheets("Feuil1").Cells(1).CurrentRegion.Value2
    For i = 2 To UBound(a, 1)
        If Not dico.exists(a(i, 1)) Then
            Set dico(a(i, 1)) = CreateObject("Scripting.Dictionary")
        End If
        If Not AL.contains(a(i, 2)) Then AL.Add a(i, 2)
        dico(a(i, 1))(a(i, 2)) = dico(a(i, 1))(a(i, 2)) + a(i, 3)
    Next
    ReDim a(1 To dico.Count + 1, 1 To AL.Count + 1): AL.Sort
    For j = 0 To AL.Count - 1
        a(1, j + 2) = AL(j)
    Next
    i = 1
    For Each e In dico
        i = i + 1
        a(i, 1) = e
        For j = 2 To UBound(a, 2)
            a(i, j) = dico(e)(a(1, j))
        Next
    Next
    With Sheets.Add.Cells(1).Resize(UBound(a, 1), UBound(a, 2))
        .Rows(1).NumberFormat = "@"
        .Value = a: .Cells(1).Value = "DEP"
        Union(.Columns(1), .Rows(1)).HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Sort .Cells(1), , , , , , , xlYes
        With .Offset(1, 1).Resize(.Rows.Count - 1, .Columns.Count - 1)
            .NumberFormat = "0.000%"
        End With
    End With
    Set dico = Nothing: Set AL = Nothing
End Sub

klin89

Rechercher des sujets similaires à "fonction somme conditionnelle annee departement"