Afficher un plage de cellules selon une liste déroulante
Fermé
c0oco0nuts
-
Modifié par c0oco0nuts le 19/10/2015 à 10:04
c0oco0nuts Messages postés 5 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 28 octobre 2015 - 28 oct. 2015 à 15:58
c0oco0nuts Messages postés 5 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 28 octobre 2015 - 28 oct. 2015 à 15:58
A voir également:
- Afficher un tableau en fonction d'une liste déroulante excel
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Tableau croisé dynamique - Guide
- Excel fonction si et - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
1 réponse
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 416
19 oct. 2015 à 10:06
19 oct. 2015 à 10:06
Bonjour
voyez si ce modèle peut vous aider
et revenez avec plus d'infos sur vos données si problème
https://www.cjoint.com/c/EJtifEXmgCU
crdlmnt
voyez si ce modèle peut vous aider
et revenez avec plus d'infos sur vos données si problème
https://www.cjoint.com/c/EJtifEXmgCU
crdlmnt
Modifié par c0oco0nuts le 19/10/2015 à 13:44
Ce modèle correspond effectivement à ce que je cherche à faire, cependant je ne comprends pas la formule : =SI(NB.SI(BdD!$A$2:$A$1000;$B$1)>=LIGNE()-2;INDEX(BdD!$A$2:$W$1000;EQUIV(Pain!$B$1&LIGNE()-2;BdD!$X$2:$X$1000;0);2);"")
Du coup je n'arrive pas la reproduire sur mon fichier excel... Pouvez-vous m'aider à comprendre cette formule?
19 oct. 2015 à 14:36
LIGNE()-2 définit la valeur 1 sur la ligne 3 (soit 3-2). Il est aussi possible d'écrire LINE(A1) sans bloquer pour que cette valeur devienne A2 et A3 etc en la tirant vers le bas
=SI(NB.SI(BdD!$A$2:$A$1000;$B$1)>=LIGNE()-2;INDEX(BdD!$A$2:$W$1000;EQUIV(Pain!$B$1&LIGNE()-2;BdD!$X$2:$X$1000;0);2);"")
Donc
=SI(NB.SI(BdD!$A$2:$A$1000;$B$1)>=LIGNE()-2
compte le nombre de fois ou la valeur B1 est contenue dans la colonne A de BdD
et la compare à la valeur du N° de ligne -2
si cette valeur est >= que ce N°, la formule suivante s'applique, sinon renvoi ""
ceci afin d'éviter des affichages #N/A dans le tableau une fois toutes les lignes trouvées
INDEX(BdD!$A$2:$W$1000;EQUIV(Pain!$B$1&LIGNE()-2;BdD!$X$2:$X$1000;0);2);"")
principe d'INDEX
INDEX(Champ de données; N° de ligne; N° de colonne)
ressort la valeur de la cellule au croisement de la colonne et de la ligne indiquées (référence dans le champ et non pas les N° de la feuille. 1 = 1° ligne du champ et idem pour colonne)
Pain!$B$1&LIGNE()-2 regroupe la valeur en B1 soit sur ligne 2 > Pain1 ou autre selon la valeur de B1
EQUIV(Valeur;champ;0) ressort le N° de ligne du champ où se trouve la, valeur cherchée
Donc dans notre formule
INDEX(BdD!$A$2:$W$1000 définit le champ des valeurs à trouver
EQUIV($B$1&LIGNE()-2;BdD!$X$2:$X$1000;0) va chercher le N° de ligne du champ où se trouve la valeur composée par $B$1 et LIGNE()-1 soit une des valeurs de la colonne codage de BdD
;2) indique que c'est la valeur de la seconde colonne du champ INDEX qu'il faut rechercher
et ;"") en fin de formule renvoie une cellule sans valeur si la condition initiale n'est pas remplie.
Woouufff.!!!
Pas très facile à expliquer par écrit, j'espère que ça ira
En complément
la formule est simplifiable si vous avez Excel à partir de 2007 et peut s'écrire:
=SIERREUR(INDEX(BdD!$A$2:$W$1000;EQUIV(Pain!$B$1&LIGNE()-2;BdD!$X$2:$X$1000;0);2);"")
bon courage
crdlmnt
28 oct. 2015 à 15:58
C'est un peu compliqué pour moi tous ces termes comme je gère le basic d'excel, mais je vous remercie pour votre aide. Je vais essayé de comprendre comment marche chaque fonction indépendamment afin de pouvoir appliquer la fonction finale dans mon fichier Excel.
Merci encore
Cordialement