Formule pour le nombre d'itérations d'une autre formule

Choops

XLDnaute Occasionnel
Bonjour à tous, je voulais savoir s'il était possible dans excel d'indiquer dans une case une constante (par exemple 5 pour indiquer le nombre de fois qu'il faut "doubler le résultat précédent") pour que le tableur me calcule dans une autre cellule un résultat du type 10*2 (1ère itération) +10*2*2 (2e itération) + 10*2*2*2 (3e itération) + 10*2*2*2*2 (4 itération) + 10*2*2*2*2*2 (5e itération) , 10 étant une autre constante, ma valeur de départ.

Est-ce possible ?
Merci !
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
maintenant je vais essayer de comprendre

Le plus simple, à mon avis, est d'utiliser la touche de fonction <F9> :
  • saisir 3 dans la cellule B2
  • sélectionner la cellule F2
  • se placer dans la barre de d'édition de la formule
  • sélectionner le texte LIGNE(INDIRECT("1:"&B2))
  • tapez sur la touche de fonction <F9> (on obtient la matrice {1;2;3})
  • sélectionner ensuite le texte PUISSANCE(2;{1;2;3})
  • tapez sur la touche de fonction <F9> (on obtient la matrice {2;4;8})
  • sélectionner ensuite le texte SOMME({2;4;8})
  • tapez sur la touche de fonction <F9> (on obtient la matrice 14)
  • etc...
pour sortir du mode calcul de la barre de formule et revenir à la formule de départ, tapez sur la touche Esc

Ou plus simplement, se placer dans F2, choisir le menu Formules / Évaluation de formule. Dans la boite de dialogue qui s'ouvre, cliquer sur le bouton Évaluer.
 
Dernière édition:

Choops

XLDnaute Occasionnel
Merci beaucoup, c'est le =LIGNE(INDIRECT que j'ai du mal à comprendre et qui est la solution à ce que je cherchais. J'ai lu les explication intégrée à Office en long large et en travers et je ne comprends pas le résultat {1;2;3} pourquoi est-ce que ça ne fait pas 3 tout simplement ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

ne comprends pas le résultat {1;2;3} pourquoi est-ce que ça ne fait pas 3 tout simplement ?

C'est l'effet de la formule matricielle (formule validée par Ctrl+Maj+Entrée).
Ligne(plage) est une fonction qui renvoie le numéro de la première ligne de la plage quand on valide de manière normale (touche entrée)

Ligne(plage) est une fonction qui renvoie une matrice comportant le numéro de chaque ligne de la plage quand on valide de manière matricielle (touches Ctrl+Maj+Entrée)

Ligne(A1:A3) validée normalement renvoie le nombre 1
Ligne(A1:A3) validée matriciellement renvoie la matrice {1;2;3}

Dans notre formule, on utilise INDIRECT("1:"&B2). Si B2 vaut 3, alors INDIRECT("1:"&B2) devient INDIRECT("1:3"). INDIRECT("1:3") référence les lignes 1 à 3.

Si maintenant, on applique aux lignes 1 à 3 la fonction LIGNE de manière matricielle, on obtient la matrice {1;2;3}. Donc LIGNE(INDIRECT("1:"&B2)) renvoie la matrice {1;2;3}. Si on avait validé normalement la formule, LIGNE(INDIRECT("1:"&B2)) aurait renvoyé le nombre 1 seulement.

PUISSANCE(2, n) calcule 2^n. Si on remplace n par une matrice, PUISSANCE va calculer les puissances pour chacun des termes de la matrice et les renvoyer dans une matrice.
PUISSANCE(2, {1;2;3}) va renvoyer la matrice {2;4;8} (parce qu'on a validé la formule matriciellement)
 
Dernière édition:

Discussions similaires

  • Résolu(e)
Microsoft 365 Formule SI
Réponses
8
Affichages
137
Réponses
5
Affichages
196

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024