GNT sans publicité, site mobile, fonctionnalitées exclusives...

Pourcentage et Indice : Année N=> base 100; Année N+1=> (110)

Le
laprisson
Bonjour,

Ne trouvant pas de moyen simple sous excel pour obtenir sous forme d'indice
(base 100 en année N-1) un pourcentage donné, j'ai créé sous excel une
formule un peu lourde mais qui a le mérite de fonctionner

Formule excel (A4 = année précédente; B4 année en cours)

SI(OU(ESTVIDE(A4);ESTVIDE(B4);(A4=0);ESTERREUR(SI((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")"))));"";SI((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")")))


Je veux désormais créer une fonction pour l'utiliser directement mais je ne
suis pas expert en VBA donc je cale sur certains points (comment obtenir
le signe d'un nombre, comment faire pour éviter les messages d'erreurs dus à
un code trop long)

Function PGindex(previous_year_value, current_year_value)

PGindex = IIf(IsEmpty(previous_year_value) Or IsEmpty(current_year_value) Or
IsNull(previous_year_value) Or IsError(IIf((previous_year_value *
current_year_value > 0), "(" & SIGNE(previous_year_value) *
SIGNE(current_year_value) * Rnd(100 + SIGNE(current_year_value) *
(current_year_value / previous_year_value - 1) * 100) & ")",
IIf(previous_year_value < 0, "(" & SIGNE(current_year_value) * Rnd(100 +
SIGNE(previous_year_value) * (current_year_value / previous_year_value - 1) *
100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value) * (current_year_value
/ previous_year_value - 1) * 100) & ")")), "", IIf((previous_year_value *
current_year_value > 0), "(" & SIGNE(previous_year_value) *
SIGNE(current_year_value) * Rnd(100 + SIGNE(current_year_value) *
(current_year_value/ previous_year_value - 1) * 100) & ")",
IIf(previous_year_value < 0, "(" & SIGNE(current_year_value) * Rnd(100 +
SIGNE(previous_year_value) * (current_year_value / previous_year_value - 1) *
100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value) * (current_year_value
/ previous_year_value - 1) * 100) & ")"))))


End Function


Si vous pouvez m'aider, je vous en remercie d'avance.
Vincent
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
PMO
Le #1891408
Bonjour,

Je ne comprends pas ce que vous voulez faire.
Pouvez-vous inventer un exemple concret pour que je puisse vous aider ?
Du style:
En "A1" j'ai 2004, en truc j'ai XXX et en machin je veux
obtenir YYY.

Merci et à bientôt.

PMO
Patrick Morange


Bonjour,

Ne trouvant pas de moyen simple sous excel pour obtenir sous forme d'indice
(base 100 en année N-1) un pourcentage donné, j'ai créé sous excel une
formule un peu lourde mais qui a le mérite de fonctionner...

Formule excel (A4 = année précédente; B4 année en cours)

SI(OU(ESTVIDE(A4);ESTVIDE(B4);(A4=0);ESTERREUR(SI((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")"))));"";SI((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI((100+SIGNE(A4)*(B4/A4-1)*100);0)&")")))


Je veux désormais créer une fonction pour l'utiliser directement mais je ne
suis pas expert en VBA donc je cale sur certains points... (comment obtenir
le signe d'un nombre, comment faire pour éviter les messages d'erreurs dus à
un code trop long...)

Function PGindex(previous_year_value, current_year_value)

PGindex = IIf(IsEmpty(previous_year_value) Or IsEmpty(current_year_value) Or
IsNull(previous_year_value) Or IsError(IIf((previous_year_value *
current_year_value > 0), "(" & SIGNE(previous_year_value) *
SIGNE(current_year_value) * Rnd(100 + SIGNE(current_year_value) *
(current_year_value / previous_year_value - 1) * 100) & ")",
IIf(previous_year_value < 0, "(" & SIGNE(current_year_value) * Rnd(100 +
SIGNE(previous_year_value) * (current_year_value / previous_year_value - 1) *
100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value) * (current_year_value
/ previous_year_value - 1) * 100) & ")")), "", IIf((previous_year_value *
current_year_value > 0), "(" & SIGNE(previous_year_value) *
SIGNE(current_year_value) * Rnd(100 + SIGNE(current_year_value) *
(current_year_value/ previous_year_value - 1) * 100) & ")",
IIf(previous_year_value < 0, "(" & SIGNE(current_year_value) * Rnd(100 +
SIGNE(previous_year_value) * (current_year_value / previous_year_value - 1) *
100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value) * (current_year_value
/ previous_year_value - 1) * 100) & ")"))))


End Function


Si vous pouvez m'aider, je vous en remercie d'avance.
Vincent



Modeste
Le #1891400
Bonsour ®,
????
je tente :
0*(current_year_value/reference_year_value)

256 en 2000 (base 100)
275 en 2004 ==> indice= 107,421875
0*275/256

Non ???

@+
-----Message d'origine-----
Bonjour,

Je ne comprends pas ce que vous voulez faire.
Pouvez-vous inventer un exemple concret pour que je
puisse vous aider ?

Du style:
En "A1" j'ai 2004, en truc j'ai XXX et en machin je veux
obtenir YYY.

Merci et à bientôt.

PMO
Patrick Morange


Bonjour,

Ne trouvant pas de moyen simple sous excel pour
obtenir sous forme d'indice


(base 100 en année N-1) un pourcentage donné, j'ai
créé sous excel une


formule un peu lourde mais qui a le mérite de
fonctionner...



Formule excel (A4 = année précédente; B4 année en
cours)



SI(OU(ESTVIDE(A4);ESTVIDE(B4);(A4=0);ESTERREUR(SI
((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*


(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI
((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI
((100+SIGNE(A4)*(B4/A4-1)*100);0)&")"))));"";SI
((A4*B4>0);"("&SIGNE(A4)*SIGNE(B4)*ARRONDI((100+SIGNE(B4)*
(B4/A4-1)*100);0)&")";SI(A4<0;"("&SIGNE(B4)*ARRONDI
((100+SIGNE(A4)*(B4/A4-1)*100);0)&")";"("&ARRONDI
((100+SIGNE(A4)*(B4/A4-1)*100);0)&")")))


Je veux désormais créer une fonction pour l'utiliser
directement mais je ne


suis pas expert en VBA donc je cale sur certains
points... (comment obtenir


le signe d'un nombre, comment faire pour éviter les
messages d'erreurs dus Ã


un code trop long...)

Function PGindex(previous_year_value,
current_year_value)



PGindex = IIf(IsEmpty(previous_year_value) Or IsEmpty
(current_year_value) Or


IsNull(previous_year_value) Or IsError(IIf
((previous_year_value *


current_year_value > 0), "(" & SIGNE
(previous_year_value) *


SIGNE(current_year_value) * Rnd(100 + SIGNE
(current_year_value) *


(current_year_value / previous_year_value - 1) * 100)
& ")",


IIf(previous_year_value < 0, "(" & SIGNE
(current_year_value) * Rnd(100 +


SIGNE(previous_year_value) * (current_year_value /
previous_year_value - 1) *


100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value)
* (current_year_value


/ previous_year_value - 1) * 100) & ")")), "", IIf
((previous_year_value *


current_year_value > 0), "(" & SIGNE
(previous_year_value) *


SIGNE(current_year_value) * Rnd(100 + SIGNE
(current_year_value) *


(current_year_value/ previous_year_value - 1) * 100)
& ")",


IIf(previous_year_value < 0, "(" & SIGNE
(current_year_value) * Rnd(100 +


SIGNE(previous_year_value) * (current_year_value /
previous_year_value - 1) *


100) & ")", "(" & Rnd(100 + SIGNE(previous_year_value)
* (current_year_value


/ previous_year_value - 1) * 100) & ")"))))


End Function


Si vous pouvez m'aider, je vous en remercie d'avance.
Vincent

.





Publicité
Suivre les réponses
Poster une réponse
Anonyme