pas de valeur 0 dans un graph / pour débutant

Christ

XLDnaute Junior
Bonjour,
Voilà, chaque mois, je rentre de nouvelles valeurs dans un tableau.
ce tableau est la référence pour la création d'un graph.
Il arrive très souvent que j'ai des valeur 0 et je ne voudrais pas qu'elles soient affichées dans le graph. et bien sûr, ce ne sont jamais les memes cellules où les valeurs sont à 0.
J'ai bien lu le post Lien supprimé
mais hélas, je ne comprends pas bien. quand je définit un nom pour la série, ça ne donne rien.

Quelqu'un pourrait-il m'éclairer un peu plus sur la procédure ?
Merci à vous tous sur ce forum

Christ
 

Christ

XLDnaute Junior
Bonsoir Jean-Marie,
voici un exemple de doc avec la manip que j'ai fait pour définir une série.
Merci pour ton aide !
Christ [file name=valeur0dansgraph.zip size=2292]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/valeur0dansgraph.zip[/file]
 

Pièces jointes

  • valeur0dansgraph.zip
    2.2 KB · Affichages: 21

JeanMarie

XLDnaute Barbatruc
Re...

Dans ton exemple, tu as les valeurs à 0 qui s'intercalent entre différentes valeurs, ce qui pose des problèmes. Pour les résoudres, soit, tu masques les lignes contenant ces valeurs, ou tu repartes d’une autre plage, qui triera les valeurs à 0, c'est le rôle de la plage B17:C26 dans le fichier joint, après cela reprend la méthode de départ.

@+Jean-Marie [file name=valeur0dansgraph_20050829231431.zip size=6668]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/valeur0dansgraph_20050829231431.zip[/file]
 

Pièces jointes

  • valeur0dansgraph_20050829231431.zip
    6.5 KB · Affichages: 19

Christ

XLDnaute Junior
Eh bien Jean-Marie,
tu ne vas pas le croire, mais je n'arrive meme pas à réécrire ta formule dans mon document de travail (celui que je t'ai envoyé était un petit exemple), j'ai (il me semble) respecté les noms des cellules, etc..
et j'ai un beau #valeur qui s'inscrit.
et je ne comprend pas pourquoi tu fais appel à la cellule juste avant (A17 par exemple dans le doc que tu as renvoyé).
Ca fait 3 heures que je suis sur ce doc et là je suis démoralisée !

Je te remercie quand meme pour ton aide.

Christ
 

JeanMarie

XLDnaute Barbatruc
Bonjour

C'est vrai que je n'ai pas mis d'explications sur cette formule, je vais essayer de t'expliquer son fonctionnement avec mon baragouinement.

La formule de la cellule B17 est à valider par les touches Ctrl+Shift+Entrer, c'est ce qui identifie une formule matricielle ({})
=SI(LIGNES(A$17:A17)>NB.SI(C$3:C$12;'>0');'';INDEX(articles;PETITE.VALEUR(SI(C$3:C$12>0;LIGNE(articles));LIGNES(A$17:A17))-LIGNE(B$2);0))

Voilà ce que fait la formule.
La partie LIGNES(A$17:A17) retourne le nombre de lignes de la plage définies. Le symbole $ rend la ligne 17 de la 1ère cellule de la plage fixe, ce que l'on appelle aussi 'Absolue', cette référence ne bougera pas lors d'un glisser déposer vers le bas.

La partie NB.SI(C$3:C$12;'>0') retourne le nombre de valeurs de la plage C$3:C$12 sui sont supérieures à 0.
Donc en foncton du comparateur >, on demande à afficher une valeur ou mettre à blanc la cellule.

Le reste de la formule utilise une 'matrice'.
- Une matrice est un tableau qui conserve en mémoire le résultat d'une fonction.
- Une matrice prend de la place en mémoire, sa taille est en fonction de la longueur de la plage passée dans une fonction.
- C'est SI(C$3:C$12>0;LIGNE(articles)) qui alimente en valeur la matrice, dans le fichier la matrice va contenir ceci
La valeur 1 correspond à la formule SI(C$3>0;LIGNE(B$3)) qui sera égale à 3
La valeur 2 correspond à la formule SI(C$4>0;LIGNE(B$4)) qui sera égale à 4
La valeur 3 correspond à la formule SI(C$5>0;LIGNE(B$5)) qui sera égale à FAUX
La valeur 4 correspond à la formule SI(C$6>0;LIGNE(B$6)) qui sera égale à 6
La valeur 5 correspond à la formule SI(C$7>0;LIGNE(B$7)) qui sera égale à FAUX
La valeur 6 correspond à la formule SI(C$8>0;LIGNE(B$8)) qui sera égale à 8
La valeur 7 correspond à la formule SI(C$9>0;LIGNE(B$9)) qui sera égale à FAUX
La valeur 8 correspond à la formule SI(C$10>0;LIGNE(B$10)) qui sera égale à 10
La valeur 9 correspond à la formule SI(C$11>0;LIGNE(B$11)) qui sera égale à 11
La valeur 10 correspond à la formule SI(C$12>0;LIGNE(B$12)) qui sera égale à 12

La matrice peut-être représentée sous cette forme
{3;4;FAUX;6;FAUX;8;FAUX;10;11;12}

Ensuite cette matrice est être utilisée par la fonction PETITE.VALEUR(...;....)
Cette fonction va triée la matrice en mémoire du plus petit au plus grand et retourne la Xième valeur (2ème argument). La 'valeur logique' FAUX n'est pas pris en compte, comme valeur numérique, la fonction inverse se nomme GRANDE.VALEUR.

Cette valeur (il y a plus qu'une valeur, et la matrice est 'erase') est ensuite utilisée par la fonction INDEX, qui va retourner la valeur dans la plage définie, qui se trouve à l'intersection en ligne et en colonne. Attention il faut soustraire le numéro de la ligne de l'entête de ton tableau, LIGNE retournant le numéro par rapport à la feuille dans sa globalité, et non en fonction de la plage spécifiée de la plage.

Si tu veux d'autres explications, je suis à ta dispostion sur le t'chat XLD.

@+Jean-Marie
 

Discussions similaires

Réponses
3
Affichages
454

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL