Affiche la dernière valeur d'une colonne

GuyErick

XLDnaute Nouveau
Bonjour,
Je suis à la recherche de la formule pour afficher dans une case prédeterminée, la dernière valeur d'une colonne dans un tableau. Ensuite, je voudrai afficher dans une autre case, la valeur de la première case de cette ligne (celle ou je viens d'extraire la valeur.
Merci de me répondre afin de pouvoir continuer ma feuille de calcul.
Bon WE.
 

GuyErick

XLDnaute Nouveau
Bonsoir,
Je ne comprend la formule, je pensais à une autre:
BDMAX(base_de_données;champ;critères)
mais je n'arrive pas à la faire fonctionner.
Par contre la tienne ne fonctionne pas non plus.
Pour la 2ème question, je l'ai résolu en faisant l'application sur la première colonne. sachant que la case de la ligne ne se remplie que si il y a une données sur la ligne.
Est ce que le fait d'avoir les cellules remplies pas une fonction, cela bloque ta formule?
Merci de répondre.
 

JeanMarie

XLDnaute Barbatruc
Bonsoir

Une formule matricielle (à valider par les touches Ctrl+Shift+Entrer), les cellules vides sont ignorées.
=MAX(NON(ESTVIDE(B1:B100))*LIGNE(B1:B100))

Attention la formule matricielle n'aime pas les déclaration de colonne entière.

@+Jean-Marie
 

GuyErick

XLDnaute Nouveau
Bonsoir,
Merci pour cette formule, mais c'est presque cela. En fait, je veux la valeur contenue dans la première case de la dernière ligne remplie.
Ta formule ne me donne que le numéro de la dernière ligne remplie.
Merci qu'en même, je la note car je pense qu'elle pourra me servir dans une prochaine applic.
Si toutefois tu es toujours en ligne et que tu as une réponse, cela m'interresse.
@+
GE
 

JeanMarie

XLDnaute Barbatruc
Re...

Si tu regardes dans la barre d'outils formule, dans la zone d'affichage de la formule, tu dois voir avant le signe = et à la fin de la formule des paranthèses { }. Elles indiquent que la cellule est une formule matricielle.
Si tu ne les vois pas, c'est que tu n'as pas validé la formule par les trois touches Crtl+Shift+entrer.

@+Jean-Marie

PS : Ecrire en majuscule, correspond à crier
 

Magoo

XLDnaute Nouveau
Bonsoir JeanMarie,

Je te joins un exemple qui va peut-être répondre à tes attentes.

Magoo :) [file name=DeMagoo.zip size=26545]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DeMagoo.zip[/file]
 

Pièces jointes

  • DeMagoo.zip
    25.9 KB · Affichages: 47

GuyErick

XLDnaute Nouveau
Bonjour Jean marie,
Excuses moi pour les majuscules, (je ne connaissais pas la signification) je ne pratique les forums que récemmement. Je suis resté en majuscules sans penser à mal.
J'ai bien vu ton exemple, mais il ne correspond pas au mien, je ne suis pas bon en explications. [file name=Exemple.zip size=8176]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple.zip[/file]
 

Pièces jointes

  • Exemple.zip
    1.4 KB · Affichages: 46
  • Exemple.zip
    1.4 KB · Affichages: 45
  • Exemple.zip
    1.4 KB · Affichages: 48

JeanMarie

XLDnaute Barbatruc
Bonjour

Comme dans ton exemple tu n'as pas cellule non vide entre plusieurs blocs, tu peux mettre dans la cellule B11 cette formule
=NBVAL(Feuil1!C:C)

Dans la cellule B14, tu as fais une erreur, tu demandes de retourner la valeur de la mauvaise colonne, dans la plage A:W, la 1ère colonne (3ème argument de la fonction INDEX) est la colonne A et pas la B.
Soit tu changes la plage en B:W ou la valeur à 2. Ce qui donne
=INDEX(Feuil1!B:W;B11;1)
ou
=INDEX(Feuil1!A:W;B11;2)

Dans la formule B5, LIGNE(Feuil1!B2:B28) retourne dans une matrice le numéro de la ligne (elle aurait ceci {2,3,4,5,6,7.......,35,36,37}), mais la ligne 2 ... de la plage G2:G37 correspond à la cellule G3, tu as donc un décalage d'une ligne.
donc on pourrait écrire ceci,
MAX(NON(ESTVIDE(Feuil1!G2:G37))*LIGNE(Feuil1!B2:B37)-1)
ce qui serait juste, mais il est préférable d'écrire ceci
MAX(NON(ESTVIDE(Feuil1!G2:G37))*LIGNE(Feuil1!B2:B37))-1
il y a une petite nuance. Dans la première, Excel va écrire dans la matrice le résultat de l'opération
{estvide(G2)*Ligne(G2)-1,estvide(G3)*Ligne(G3)-1,estvide(G4)*Ligne(G4)-1,......,estvide(G37)*Ligne(G37)-1}
et dans la deuxième
{estvide(G2)*Ligne(G2),estvide(G3)*Ligne(G3),estvide(G4)*Ligne(G4),......,estvide(G37)*Ligne(G37)}
la soustraction se fera après la fonction MAX et ainsi on évite 36 soustractions.

Ce qui donne la formule.
=INDEX(Feuil1!G2:G37;MAX(NON(ESTVIDE(Feuil1!G2:G37))*LIGNE(Feuil1!B2:B37))-1;1)
J'espère que cette dernière partie ne va pas être trop dure à digérer. Tu as dans les formules matricielles à toute puissance d'Excel dans les calculs.

@+Jean-Marie

Message édité par: JeanMarie, à: 14/03/2005 18:25
 

Magoo

XLDnaute Nouveau
Bonsoir GuyErick, JeanMarie,

Désolé mon message de la nuit était adressé à GuyErick et non à toi jeanMarie. Je sentais que GuyErick avais un besoin rapide de boucler son tableau et n'avais pas encore acquis les formules matricielles. Maintenant ta solution est plus performante.
Je suis pas toujours frais la nuit :S

Magoo :)
 
D

Dominiqsue

Guest
J'essaie d'utiliser la fontion FREQUENCE d'Excel mais quand je tape simultanément sur MaJ + ENTR + CTRL, c'est le caractère < qui s'affiche et non des accolades. :(
Savez-vous pourquoi ?
Par avance merci,
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 980
Membres
103 996
dernier inscrit
KB4175