Champ évolutif dans une formule

Bonjour,

Est-il possible de rendre la plage de calcul évolutive. Par exemple : Un tableau contient des valeurs de A1 à A50.

Je fais SOMME(A1:A50).

Mais si j'ajoute une valeur en A51, je souhaiterais que le calcul se fasse SOMME(A1:A51)

Mais sans utiliser SOMME(A:A)

Merci à vous

Bonjour,

Pourquoi ne pas utiliser =SOMME(A:A) ?

Tu as des valeurs plus bas que ton tableau ?

Tu peux sinon prévoir large avec =SOMME(A1:A50)

Sinon il faudra passer par un nom dynamique dans ta formule.

Ca donne ceci =SOMME(Liste)

Et tu crées le nom Liste dans Insertion - Nom - Définir... (ou Formules - Définir un nom sous 2007) et Liste vaut :

=DECALER($A$1;0;0;NBVAL($A:$A);1)

Si tu as des valeurs qui sont en bas de la colonne A et que tu ne dois pas les compter, par exemple je dois compter de A1 à A50 et ne pas tenir compte de A60 et A61, alors le nom est :

=DECALER($A$1;0;0;NBVAL($A:$A)-2;1)

A+

bonjour

=SOMME(INDIRECT("A1:"&ADRESSE(NB(A1:A500);1)))

pour faire simple

cordialement

En fait en colonne A je cherche à calculer la moyenne des valeurs en retirant les 0 et les cellules vides.

En retirant les 0, j'ai appris mais ça me prend en compte les cellules vides, me faussant ainsi le résultat, c'est pour cç que je ne voulais pas utiliser A:A dans la formule.

Mon tableau pourra à terme contenir plus de 5000 valeurs.

Re,

Ok donc en fait ce qu'il te faut pour faire une moyenne c'est =SOMME(A:A)/NB.SI(A:A;">0")

Et voila !

A+

Edit : j'ai corrigé une petite erreur, on fait bien sûr la division avec "/" et non pas ":".

bonjour

rien ne vaut un fichier joint :la preuve lire le premier fil

alalala !!!!

bon week_ end

Bonjour

Plage Dynamique

Si tu envisage 5000 Lignes, tu peux prévoir large avec

Menu "Inserion" "Nom" "Définir"

Dans "Nom dans le classeur:", taper Liste

Dans "Fait référence à:", entrer la formule

=DECALER(Feuil1!$A$1;;;MAX(LIGNE(Feuil1!$A$1:$A$6000)*(Feuil1!$A$1:$A$6000<>"")))

Et pour la Moyenne ignorant les 0 et les cellules vides

=SOMMEPROD((Liste<>0)*(ESTNUM(Liste));Liste)/SOMMEPROD((Liste<>0)*(ESTNUM(Liste)))

ou, plus simple

=SOMME(Liste)/SOMMEPROD((Liste<>0)*(ESTNUM(Liste)))

Exemple dans fichier joint

Cordialement

141classeur2.xls (15.00 Ko)
Rechercher des sujets similaires à "champ evolutif formule"