Formule miracle ?

Fermé
Nicolas Desormeaux - 22 mars 2017 à 20:05
shadows31 Messages postés 2 Date d'inscription vendredi 24 mars 2017 Statut Membre Dernière intervention 25 mars 2017 - 25 mars 2017 à 00:27
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 ?

5 réponses

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
23 mars 2017 à 01:05
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
22 mars 2017 à 20:42
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
23 mars 2017 à 09:43
bonjour

=EQUIV(A1;{0;20;60;120;180};1)-1
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
23 mars 2017 à 12:19
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 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
23 mars 2017 à 12:30
Sauf que son intervall n'est pas systématiquement de 60 ... pour chaque niveau...
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
Modifié par eriiic le 23/03/2017 à 13:14
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 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712 > eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024
23 mars 2017 à 13:53
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 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
23 mars 2017 à 16:55
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 vendredi 24 mars 2017 Statut Membre Dernière intervention 25 mars 2017
25 mars 2017 à 00:27
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