Formule miracle ?

Nicolas Desormeaux -  
shadows31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche depuis un bon moment deja, jai fouiller google de fond en comble mais je ne trouve pas. J'explique mon probleme. Je fais une feuille de personnage (style jeux video) je voudrai qu'a chaque niveau cela coute plus que le niveau precedent. Exemple.

Exp recu Niveau
A1________A3
Jaimerai que lorsque a1 =20 que a3 =1
Jaimerai que lorsque a1 =60 que a3 =2
Jaimerai que lorsque a1 = 120 que a3=3
Jaimerai que lorsque a1 =180 que a4=4

Cest un calcul que chaque niveau prend 20 exp recu de plus que le precedent. Il y a til un moyen qu'en inscrivant l'exp recu le niveau soit calculer automatiquement ?

A voir également:

5 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Si tu veux quelque chose de "dynamique" sans avoir à saisir tous tes SI ..... tu peux éventuellement passer par du VBA et une fonction personnalisée.
Par exemple :
Function getValByInterv(cell As Range, Optional nbIntervMax As Long = 300) As Long

Dim interv As Long
Dim interv_prec As Long
Dim increm As Long

increm = 0
interv = 0
interv_prec = 0

For i = 1 To nbIntervMax
 increm = increm + 20
 interv = interv + increm
 If cell.Value > interv_prec And cell.Value <= interv Then
   getValByInterv = i
 End If
 interv_prec = interv
Next

End Function


NB: Avec un nbIntervMax à 300 tu peux aller jusqu'à 900000 .. si tu as besoin de plus tu augmente la valeur de nbIntervMax (soit dans la fonction ... soit en lui passant le second argument lors de son appel...

et pour l'utiliser il suffit de faire (dans une cellule...) :
=getValByInterv(A13)

ou
=getValByInterv(A13,300)



1
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
=SI(A1=20;1;SI(A1=60;2;SI(A1=120;3;SI(A1=180;4;""))))
je ne sais pas si c'est ce que vous cherchez, mais ça répond à la question au pied de la lettre
Ca peut être nuancé sur les valeurs de A1
=SI(A1<=20;1;SI(A1<=60;2;SI(A1<=120;3;SI(A1<=180;4;""))))
crdlmnt
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

=EQUIV(A1;{0;20;60;120;180};1)-1
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

et 21 ou 59 c'est 1 ou 2 ?
En attendant une formule plus générale :
=ENT(A1/60)+1

eric
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Sauf que son intervall n'est pas systématiquement de 60 ... pour chaque niveau...
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Sauf que on ne sait pas.
Moi je vois +1 à 60, 120 et 180.
J'ai bien 1 à 20, 2 à 60 etc
Pas de raison de faire plus compliqué jusqu'à plus ample informé non ?
.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Jaimerai que lorsque a1 =20 que a3 =1
Jaimerai que lorsque a1 =60 que a3 =2
Jaimerai que lorsque a1 = 120 que a3=3
Jaimerai que lorsque a1 =180 que a4=4


1 - 20
20 - 60
60 - 120

par contre .. après ce n'est pas 180 .. mais 200 (je pense qu'il s'est trompé dans l'énnoncé)
vu qu'il indiquait :
chaque niveau prend 20 exp recu de plus que le precedent

ce qui correspond à
premier intervalle : 20 puis 40 puis 60 puis 80 puis 100...etc...
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
il s'est sans doute trompé, mais rien ne dit où...
3 fois dans les valeurs ou 1 fois dans prend 20 exp ?
De toute façon ce débat est stérile tant qu'il ne se sera pas mieux expliqué, d'où ma question introductive : et 21 ou 59 c'est 1 ou 2 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shadows31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
pourquoi pas faire une petite base de données en D1:E4 OU AILLEURS
20 1
60 2
120 3
180 4
et faire une simple recherche verticale si tu tapes 20 dans A1 tu aura 1 en A3 si tu tape 120 en a1 tu aura 3 etc
=RECHERCHEV(A1;D1:E4;2;0)
Cest plus simple si l incrément change car on ne touches pas la formule
ou alors je nai pas compris le problème!!!!
0