Somme cellules colonne décalée différemment

Bonjour à tous,

Voici mon problème - certainement évident pour vous mais pas pour moi.

* J'ai une ligne de données sur 10 ans, qui s'applique à un projet qui démarre en année 1 (exemple : le nombre de pommes de terre produite sur un champ année après année)

* J'ai 9 projets, qui démarrent chacun en une année différente (exemple : 9 champs, dont l'exploitation commencera à des années différentes)

* Je souhaite trouver année après année les données consolidées sur l'ensemble des projets (exemple : le nombre de pommes de terres produites en année 1, en année 2 etc. jusqu'à l'année 10)

* J'ai fait une "somme" de fonction "décaler" mais la formule est lourde (voir ligne en orange)

* Je chercher une formule plus simple pour calculer mes données consolidées

--> Auriez-vous une idée pour simplifier la formule de la ligne surlignée en orange dans mon fichier ?

Mille mercis à la communauté !

Laetitia

3528112017-test.xlsx (15.12 Ko)

Bonjour Laetitia et bienvenue,

Pas facile de comprendre ce que tu veux ... sauf en examinant toutes tes formules (pour en arriver à la conclusion que la plage de O18 à X26 était vouée à disparaître aussi ... si ma conclusion n'est pas, elle-même, erronée!?)

Bref, en O35, si j'écris:

=SOMME(DECALER(O30;;$P$6:$P$14))

... et que je valide à l'aide de la combinaison Ctrl+Shift+Enter, j'obtiens le même résultat (et si je recopie à droite, c'est pareil )

Maintenant, je dois à l'honnêteté de dire que la formule est moins "longue", mais en bonne formule matricielle qu'elle est, elle serait très consommatrice de temps de calcul, sur des volumes de données beaucoup plus conséquents!

Merci beaucoup pour cette réponse.

Effectivement, les cellules O18 à X26 sont vouées à disparaître à terme.

Lorsque j'exécute ta formule, je retombe sur les valeurs de la ligne 30 mais pas sur celles de la ligne 33 ou 34, ce que je cherche à faire. C'est normal ?

Merci !

Ah ... encore un grand moment de solitude pour moi à force d'avoir le nez dedans, j'ai fini par considérer que les résultats attendus étaient dans la ligne bleue

Désolé!

Aucun souci, c'est moi qui suis désolée, je n'ai pas été claire !

C'est la somme qui me pose un problème. Je suis obligée de la calculer "à la main" (cf. ligne orange) mais ne trouve pas comment la simplifier avec un "somme".

Bonjour laetitilekiwi.

Bonjour Milité.

Si une fonction personnalisée peut te convenir, on pourrait envisager d'améliorer le code fournit dans le fichier.

Je te laisse regarder, et nous pouvons en discuter au besoin.

Il faut activer les macros à l'ouverture du fichier.

Merci beaucoup ! Je vais me plonger dans le code pour voir comment le raccourcir éventuellement.

Mais ça marche en tout cas

Nous pouvons réduire la fonction comme ceci :

Function pipeline(nb As Range, years As Range, year$)
Dim data(), start(), a()
Dim i&, j&, an&, y&, res&

data = Application.Transpose(nb.Value): start = years.Value
y = Replace(year, "Year ", "")

For i = LBound(data) To UBound(data)
    For j = LBound(start) To UBound(start)
        an = Replace(start(j, 1), "Year ", "") - 1
        If an + i = y Then res = res + data(i, 1)
    Next j, i

pipeline = res

End Function

Merci !

Rechercher des sujets similaires à "somme colonne decalee differemment"