Re : petite valeur avec conditions
Salut @tous
Pour décortiquer ce genre de formule on part de l'intérieur vers l'extérieur.
Et surtout use et abuse de l'outil d'évaluation de formule dans excel qui te permet de suivre pas à pas comment excel traite cette formule.
Déjà tu enlèves les si(esterreur(machin);"valeur si erreur";machin)
machin ici c'est ce bout de formule :
INDEX(numeropiec;PETITE.VALEUR(SI(CPTECOMPTA=numero;LIGNE(CPTECOMPTA)-LIGNE(clients!$A$1));LIGNE(1:1))
ligne(1:1) : vaut ... 1 !
quand tu tires vers le bas ça devient
ligne(2:2)
ligne(3:3)
...
qui est une façon de dire à excel d'incrémenter une série de nombres 1, 2, 3....
cette valeur est le dernier argument de petite.valeur
Petite valeur regarde le classement du plus petit au plus grand d'une série de valeurs
petite.valeur (truc;1) renvoie la première valeur de ce classement (donc la plus petite valeur)
petite.valeur(truc;2) renvoie la seconde plus petite valeur
...
maintenant comment définir la série truc ? Cette série contient tous les numéros de ligne pour lesquels cptecompta est identique au numéro que tu as choisi.( Tu as nommé cette cellule "numero".)
c'est une formule matricielle donc excel regarde tous les numéros de ligne, et pour chacun renvoie vrai ou faux suivant que la condition est remplie.
ça donne un truc du genre (je n'ai plus tes données sous les yeux)
...si({v;v;f;f;f;v};...
Ligne (cptecompta) renvoie
{2;3;4;5;6;7}
puisque ta plage commence en C2
on va utiliser ensuite cette portion de la formule comme argument de la fonction index.
Index renvoie la POSITION RELATIVE d'un élément dans une série. Pas le N° de ligne.
donc il faut corriger, en enlevant à toutes ces valeurs le N° de la ligne d'entête de ton tableau
...si({v;v;f;f;f;v};{2;3;4;5;6;7};-{1}
devient donc
...si({v;v;f;f;f;v};{1;2;3;4;5;6}
...petite.valeur(si({v;v;f;f;f;v};{1;2;3;4;5;6}...
c'est à dire
petite.valeur({1;2;f;f;f;6}
ajoute maintenant l'argument ligne(1:1) (ou 2:2)... quant tu tires la formule vers le bas
petite.valeur({1;2;f;f;f;6};ligne(1:1)
renvoie 1
NB : La 3° VALEUR de cette série est 6 car les Faux ne sont pas des valeurs et sont ignorés
Donc enfin,
index(cptecompta;1)
renvoie la valeur de la première cellule de la plage ctecompte c'est à dire la valeur de C2
OUF !!
capito ?
Allez c'est l'heure de l'apéro