Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'ai crée il y a quelques temps Un tableau avec 4 colonnes. Nom - Objectif (valeur de 1 à 4) - Acquis (valeur de 1 à 4) et formation ?
Dans la colonne formation, une formule : Si la valeur de "acquis" et plus petit que la valeur "d'objectif" alors s'affiche oui sinon rien.
Jusque là tout va bien. J'ai ensuite fait une représentation graphique type étoile les 3 premières colonnes, afin de voir quelles sont les objectifs à améliorer pour une formation
Mon problème:
J'aimerai ajouter la ligne entière dans le graphique UNIQUEMENT lorsque dans la colonne il y a un "oui".
Une sorte de tableau...
Un peu compliqué d'expliquer sans exemple. si vous avez besoin de précision n'hésité pas.
Bien à vous
1. Comment ou où es-tu allé pour trouver cette formule ?
2. Je n'arrive toujours pas à insérer le tableau dans mon graphique.
3. efgé, dans ta version 2.1 tu n'a plus les bordures dans les cellules vides.. comment as-tu fais ?
1. Comment ou où es-tu allé pour trouver cette formule ?
2. Je n'arrive toujours pas à insérer le tableau dans mon graphique.
3. efgé, dans ta version 2.1 tu n'a plus les bordures dans les cellules vides.. comment as-tu fais ?
Le coeur de la formule matricielle est:SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41))
Cette formule examine chaque cellule de SA!$D$5:$D$41. Pour chaque cellule égale à "oui", elle renvoie le numéro de la ligne de la cellule sinon elle renvoie FAUX. On obtient la matrice:
{5;6;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;15;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;22;FAUX;FAUX;FAUX;FAUX;FAUX;28;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;38;FAUX;40;FAUX}
On utilise ensuite la fonction petite.valeur pour renvoyer successivement la 1ière petite valeur, puis la seconde petite valeur, etc.
PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));1)
PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));2)
Pour calculer les valeurs 1,2,3... on utilise la formule : LIGNES(SA!$A$5:A5)
Quand on est sur la ligne 5, cette formule renvoie 1 (nbre lignes de A5 à A5)
Quand on est sur la ligne 6, cette formule renvoie 2 (nbre lignes de A5 à A6)
etc...
On obtient la formule:
PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));LIGNES(SA!$A$5:A5)) qui tirée vers le bas nous donne ce qu'on cherche, càd la succession des numéros des lignes à "oui" en colonne D
Avec ce numéro de ligne, on va aller chercher les valeurs du tableau initial.
Pour cela on utilise la fonction Index qui renvoie dans une plage le Nième élément:
=Index(Plage,N)
Si on veut renvoyer le nom, la plage est SA!A$5:A$41. Pour le premier "oui", on aura donc:
=Index(SA!A$5:A$41,N) avec N=1 le premier numéro de ligne trouvé à "oui". Pour le second "oui",
=Index(SA!A$5:A$41,N') avec N'=2 le second numéro de ligne trouvé à "oui", etc.
Les numéros de lignes à "oui" ont été trouvés précédemment, ce qui donne:
=Index(SA!A$5:A$41,PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));LIGNES(SA!$A$5:A5)))
A ce stade, la formule est fausse. Nous avons trouvé les numéros de ligne à "oui". En effet, dans l'exemple, on voit que le premier numéro de ligne à "oui" est 5.
Mais index renvoie le premier élément de la plage pour N=1 et non N=5. Il faut donc corriger le numéro de ligne renvoyé en lui ôtant 4 pour retrouve la valeur 1.
Première ligne à "oui"=ligne 5.
Index(SA!A$5:A$41,5)renvoie le 5ième élément de la plage alors que nous voulons le premier.
On corrige donc par: Index(SA!A$5:A$41,-4+5)
ce qui donne la formule:
INDEX(SA!A$5:A$41;-4+PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));LIGNES(SA!$A$5:A5)))
On arrive presque à la fin.
Dans l'exemple fourni, il n'y a que 7 valeurs à "oui". Si on tire cette formule vers le bas, on va bien au-delà du nombre de oui et la formule renverra une erreur à partir de la 8ième ligne. Il faut donc trouver une façon de compter le nombre de ligne et au-delà de 7 lignes, renvoyer une valeur vide.
Pour compter le nombre de "oui" du tableau, on utilise la formule:NB.SI(SA!$D$5:$D$41;"oui")
Pour savoir si on est au-delà delà de 8, on utilise la formule :
LIGNES(SA!$A$5:A5)>NB.SI(SA!$D$5:$D$41;"oui")
donc on arrive à la formule suivante:
=si(on est au-delà de la huitième ligne, on renvoie "", sinon on renvoie la valeur désirée)
=si(LIGNES(SA!$A$5:A5)>NB.SI(SA!$D$5:$D$41;"oui"),"", sinon on renvoie la valeur désirée)
=si(LIGNES(SA!$A$5:A5)>NB.SI(SA!$D$5:$D$41;"oui"),"",INDEX(SA!A$5:A$41;-4+PETITE.VALEUR(SI(SA!$D$5:$D$41="oui";LIGNE(SA!$D$5:$D$41));LIGNES(SA!$A$5:A5))))
Attention, le placement des "$" dans les références de cellule ou plage est primordial pour pouvoir copier/tirer la formule en A5 vers la droite et vers le bas.
Re
En ce qui me concerne:
Le tableau est juste déoplacé sur le graphique
Les cellule ne se voient plus car la plage est filtrée dons on ne vois que les cellules "oui"
Cordialement
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD