Re : Aide pour développer une fonction !
Bonjour PierreJean,
je vais faire de mon mieux pour vous traduire ça en bon français.
La fonction de départ, avant qu'elle soit modifiée est la suivante :
{=produit(1+[plage])^(1/nombre d'année) -1}
Pour intégrer le fait que la date choisie est variable tout comme le sont les numéros de colonne pour les ticker, j'ai dû improviser un peu.
J'ai utilisé la fonction indirect de manière à pouvoir jouer avec les paramètres à l'intérieur du produit matriciel.
1) Donc, le premier equiv sert à déterminer le numéro de la colonne qui correspond au bon ticker (donc à l'horizontal)
2) Avec une rechercheh, je transfère le numéro de colonne trouvé, par exemple 3, en lettre, donc C dans mon exemple, dans une petite table que j'ai faite dans l'onglet paramètres.
3) Le second equiv sert à aller chercher la ligne correspondant à la date choisie.
4) Avec une petite manipulation (Nombre d'année * 12 -1), j'arrive à obtenir la date de début pour mon produit (par exemple 2 ans plus tot). Je soustrait donc le chiffre obtenu au résultat du equiv pour la date.
5) Je fait une concaténation (je ne sais pas si c'est le bon terme 😉 ) pour obtenir le résultat suivant (toujours un exemple) : C150:C185
Donc, avec la fonction indirect, j'arrive à entrer la feuille dans laquelle le produit matriciel doit être effectué, ainsi que les plages à couvrir.
Finalement, le petit (1/nombre d'années) est utilisé de la même manière que dans le cas d'une moyenne géométrique. C'est essentiel à la formule. Sinon, on se retrouve avec des rendements de plus en plus gros plus les années passent.
En espérant avoir été plus clair !
Merci de votre aide !
Cordialement,
Étienne
Edit : J'oubliais, la fonction si(esterreur(produit ... au départ sert uniquement au fait que si le rendement n'existe pas où qu'il y a une erreur quelconque, alors mettre un "s.o." plusque qu'un #VALEUR, c'est plus esthétique quand on présente les résultats.