Boucle avec variables dans une formule

Bonjour à tous

C'était déjà compliqué de trouver un titre à ce sujet
Je vais tacher d'expliquer au mieux mon problème

J'ai un tableau avec des performances annuelles

20162017201820192020Perf cumulée
+ 2,00%+ 4,00% - 3,00%+ 5,00% - 2,00%

Je souhaiterais calculer une performance cumulée selon une année de départ

Par exemple si je choisis 2016, j'aurai la performance depuis 2016 =(100*(1+2%)*(1+4%)*(1+-3%)*(1+5%)*(1+-2%)-100)/100
Mais si je choisis 2019, j'aurai la performance depuis 2019 =(100*(1+5%)*(1+-2%)-100)/100

Il faudrait donc avoir les variables première colonne et dernière colonne et faire une boucle en incrémentant +1 de la première colonne jusqu'à la dernière colonne
Mais je n'arrive pas à créer une boucle qui s'appliquerait à une formule

J'espère avoir été clair... Merci d'avance à ceux qui auraient envie de se creuser la tête !

Nicolas

Bonjour,

Je me demande s'il n'y a pas une fonction native qui permettre de le faire directement.

Voici un essai quand même avec la formule suivante :

=A1*SOMMEPROD(PRODUIT((1+A10:E10))

où A1 est l'indice de départ (100 par exemple)

Par exemple, entre 2016 et 2018, la formule devient :

=A1*SOMMEPROD(PRODUIT((A9:E9>=2016)*(A9:E9<=2018)*(1+A10:E10)))

Cdlt,

Merci beaucoup

Je vais essayer en intégrant un décaler mais c'est un très bon début :-)

Pourquoi un DECALER ? Pour gérer l'insertion de nouvelles colonnes ?

Honnêtement, il serait mieux d'avoir les années en ligne (les taux également), si c'était possible et le tout sous forme de tableau structuré. Alors, il n'y aurait pas besoin de DECALER !

Le DECALER, c'était pour partir de la 1ère colonne (année) jusqu'à la dernière
avec votre 1ère formule qui fonctionne parfaitement

Malheureusement celle là ne renvoie pas de résultat
=A1*SOMMEPROD(PRODUIT((A9:E9>=2016)*(A9:E9<=2018)*(1+A10:E10)))

Voici un essai avec mon idée et la formule à jour (le produit avec des 0, c'est pas top )... en matriciel cette fois-ci

=$F$3*SOMMEPROD(PRODUIT(SI((Perf[Année]>=$F$1)*(Perf[Année]<=$F$2);1+Perf[Taux])))

Je pense qu'on s'approche du but...

6nico13.xlsx (10.69 Ko)

Cdlt,

Je suis parti de votre 1ère formule et ça fonctionne en partant de la 1ère colonne et en la décalant

=(100*SOMMEPROD(PRODUIT((1+DECALER(F10;0;X14):S10)))-100)%

Je vais creuser votre fichier... C'est du grand art
Merci beaucoup !

Rechercher des sujets similaires à "boucle variables formule"