Formule miracle ?
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 ?
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 ?
5 réponses
-
ModérateurBonjour,
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)
-
ContributeurBonjour
=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
-
Contributeurbonjour
=EQUIV(A1;{0;20;60;120;180};1)-1
-
ContributeurBonjour,
et 21 ou 59 c'est 1 ou 2 ?
En attendant une formule plus générale :=ENT(A1/60)+1
eric
-
-
-
Modérateur@eriiic
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... -
-
-
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!!!!