Valeur max de chaque ligne d'une matrice

Petrus

XLDnaute Nouveau
Salut

J'ai une matrice (en jaune) et avec la formule GRANDE.VALEUR(INDEX(Jaune;{1;2;3;4};0);1) j'obtiens la valeur maximum de chaque ligne de cette matrice. (en orange)

Puis à partir de cette nouvelle matrice je récupère les 2 valeurs les plus grandes (en rouge) avec la formule GRANDE.VALEUR(INDEX(Orange;0;1);{1;2}).

Ce que je voudrais c'est faire toutes ces opérations en une seule formule.
Du coup je me suis qu'il me suffisait de concaténer les 2 formules : GRANDE.VALEUR(INDEX(GRANDE.VALEUR(INDEX(Jaune;{1;2;3;4};0);1);0;1);{1;2})

Mais ça ne marche pas (en bleu). :-/

Dans le premier cas (formules dissociées) ça marche parce que la 2ème formule agît sur une plage ou matrice complète de 4 cellules. (la plage orange)

Dans le second cas (cumul des formules) ça ne semble pas être la matrice globale en orange qui est reprise pour déterminer les 2 plus grosses valeurs mais plutôt les 4 cellules une à une représentant 4 lignes distinctes. La première valeur retournée est bien le 9 (correspondant à la valeur 1ère de la ligne 1). Ensuite Excel recherche dans la ligne 2 la valeur 2ème (qui n'existe pas puisque la ligne 2 ne comporte qu'une valeur).

Savez-vous comment coder cette concaténation de formules svp?

Merci
 

Pièces jointes

  • Classeur1.xlsx
    9.9 KB · Affichages: 39
  • Classeur1.xlsx
    9.9 KB · Affichages: 44
  • Classeur1.xlsx
    9.9 KB · Affichages: 36
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Valeur max de chaque ligne d'une matrice

Bonsoir et Bienvenue sur XLD,
en K2,
Code:
=GRANDE.VALEUR(SOUS.TOTAL(4;DECALER(B$1;LIGNE(INDIRECT("1:"&LIGNES(B$2:B$5)));;;3));LIGNES($2:2))
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ + +
 

Petrus

XLDnaute Nouveau
Re : Valeur max de chaque ligne d'une matrice

Merci pour ta réponse R@chid !

J'ai mis du temps à comprendre pourquoi tu passais par les fonctions sous.total et decaler mais après plusieurs tests c'est bien l'association des 2 qui marchent et pas une seule à la fois :
max + index => KO
sous.total(4) + index => KO
max + decaler => KO
sous.total(4) + decaler => OK :)

Juste une petite correction à la fin de ta formule :

=GRANDE.VALEUR(SOUS.TOTAL(4;DECALER(B$1;LIGNE(INDIRECT("1:"&LIGNES(B$2:B$5)));;;3));LIGNE(1:2))
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Valeur max de chaque ligne d'une matrice

Bonsoir,
Juste une petite correction à la fin de ta formule :
=GRANDE.VALEUR(SOUS.TOTAL(4;DECALER(B$1;LIGNE(INDIRECT("1:"&LIGNES(B$2:B$5)));;;3));LIGNE(1:2))
On dit pas que c'est une correction puisque c'est juste une adaptation..
Moi j'ai fait en sorte qu'on tire vers le bas alors que toi tu veux la valider tout simplement sur K2:K3..

@ + +
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 455
Membres
103 216
dernier inscrit
LoshR7