Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Besoin d'aide , création de fonction excel (sur un vecteur)

  • Initiateur de la discussion Initiateur de la discussion Emile
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Emile

Guest
Bonjour
Je fais une étude sur dix actions du NASDAQ en se basant sur une approche historique .J'ai réussi a télécharger les data concernant ces actions durant les quatre dernières années sous format xls . Je dois calculer les retours et déterminer les covariances ,mais je suis bloqué , je trouve pas comment manipuler Excel .
(j'ai juste besoin d'une fonction qui prend en argument un vecteur de dimension n [S(i)] et retourne un vecteur [R(i)] , R(i)=(S(i)-S(i-1))/S(i)
Merci
 
Re : Besoin d'aide , création de fonction excel (sur un vecteur)

Bonjour Emile, bienvenue sur XLD,

Voyez le fichier joint et la fonction R dans Module1 (Alt+F11) :

Code:
Option Base 1

Function R(S As Variant) As Variant
Dim i&, t#()
S = Application.Transpose(S)
On Error Resume Next
i = UBound(S, 2)
On Error GoTo 0
If i Then S = Application.Transpose(S)
i = UBound(S)
ReDim t(i - 1)
For i = 2 To i
  t(i - 1) = (S(i) - S(i - 1)) / S(i)
Next
R = t
End Function
Cette fonction est utilisée dans la feuille de calcul avec les 2 types de "vecteurs".

Edit : salut STephane

A+
 

Pièces jointes

Dernière édition:
Re : Besoin d'aide , création de fonction excel (sur un vecteur)

Re,

Ceci est peut-être préférable quand le calcul crée une erreur (valeur zéro, texte...) :

Code:
Option Base 1

Function R(S As Variant) As Variant
Dim i&, t() As Variant
S = Application.Transpose(S)
On Error Resume Next
i = UBound(S, 2)
If i Then S = Application.Transpose(S)
i = UBound(S)
ReDim t(i - 1)
For i = 2 To i
  On Error Resume Next
  t(i - 1) = (S(i) - S(i - 1)) / S(i)
  If Err Then t(i - 1) = "n/a"
Next
R = t
End Function
Fichier (2).

A+
 

Pièces jointes

Re : Besoin d'aide , création de fonction excel (sur un vecteur)

Re,

On peut aussi utiliser cette fonction RS qui renvoie un scalaire et non plus un vecteur :

Code:
Option Base 1

Function RS(S As Variant, ordre&) As Variant
'renvoie un scalaire
S = Application.Transpose(S)
On Error Resume Next
RS = UBound(S, 2)
If RS Then S = Application.Transpose(S)
On Error Resume Next
RS = (S(ordre + 1) - S(ordre)) / S(ordre + 1)
If Err Then RS = "n/a"
End Function
Dans le fichier (3) joint le calcul est bien plus rapide car il n'y a plus de boucle...

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…