Compiler plusieurs index dans une même cellule sur Excel 365

Fermé
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023 - 2 juin 2023 à 15:00
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 - 17 juil. 2023 à 17:21

Bonjour à toutes et à tous,

Cela fait un moment que je cherche sur ce forum une réponse à mon questionnement mais sans succès. Je vous pose donc la question en direct.

J'utilise Excel 365 en français.
 

Sur une feuille noté "Liste" j'ai : en C3 une liste déroulante, en D3 une liste déroulante en cascade découlant de celle en C3, et en E3 je souhaite qu'une donnée apparaisse automatiquement en fonction de la donnée qui apparaît en D3.

J'utilise donc cette formule : =INDEX(Méta!$M$3:$M$10; EQUIV(D3; Méta!$D$3:$D$10; 0))

Mes listes déroulante sont sur une autre feuille nommée "Méta".

Cette formule fonctionne correctement si en C3 je sélectionne le premier choix de la liste déroulante puis en D3 n'importe quel choix.

Par contre, pour que ça puisse fonctionner pour les autre choix de la liste déroulante de C3 il faudrait que je puisse compiler dans la formule en D3 plusieurs index.

Jai essayé d'ajouter des index les uns à la suite des autres, en séparant avec de ; ou avec des "", des () , des "& &" mais jusqu'ici rien ne fonctionne.

Savez-vous si c'est possible et comment faire ?

Faut-il passer obligatoirement par du code VBA ?


Windows / Chrome 113.0.0.0

A voir également:

10 réponses

via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
2 juin 2023 à 15:42

Bonjjour

Non c'est surement possible par formule, tout dépend comment se présentent tes index

Fournis un exemple de ton fichier avec ses différents index en expliquant à partir d'exemples précis ce que tu veux obtenir

Fichier à poster sur cjoint.com, daire créer un lien, le copier et revenir le coller iciDans l'attente

Cdlmnt

Vai


0
DjiDji59430 Messages postés 4136 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 29 octobre 2024 677
Modifié le 2 juin 2023 à 15:45

Bonjour à tous,

"Faut-il passer obligatoirement par du code VBA ?"

- - - Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur https://www.cjoint.com/ , ainsi que la version d'Excel, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt

tout depend de comment tu as goupillé tes "listes".


Crdlmt

0
DjiDji59430 Messages postés 4136 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 29 octobre 2024 677
Modifié le 2 juin 2023 à 15:48

rien, j'ai effacé pae inadvertance mon historique, et je le recrée


Crdlmt

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
2 juin 2023 à 16:08

Merci pour la rapidité des réponses.

Voici le fichier en question : https://www.cjoint.com/c/MFcogt12vTT

En espérant que le tout soit compréhensible.

0
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 80
2 juin 2023 à 16:50

Hello,

Une proposition à tester, pour Excel 365 uniquement, en E3 et à recopier :

=SIERREUR(INDEX(DANSCOL(Méta!$M$3:$T$10;;1);EQUIV(D3;DANSCOL(Méta!$D$3:$K$10;;1)));"")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
2 juin 2023 à 17:11

Autre possibilité à mettre en E3 :

=DECALER(Méta!$L$2;DROITE(D3;1);EQUIV(Liste!C3;Méta!$D$2:$K$2;0))

puis étirer la formule


0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
2 juin 2023 à 17:24

Je n'avais pas vu la réponse.

Ça fonctionne également. Seul petit bémol, pas bien grave, quand je sélectionne "Option_4" (par exemple) dans la colonne "C", la référence change déjà dans la colonne "E" avant que je fasse une sélection dans la colonne "D".

Mais je retiens tout de même cette option car si l'autre option ne fonctionne plus quand j'ouvre le document sur une autre version d'Excel que 365, elle me sera sûrement bien utile.

Merci beaucoup !

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
2 juin 2023 à 17:15

Super !

Merci beaucoup, ça fonctionne parfaitement.

Plusieurs questions : 

 - Comment fonctionne cette formule ?

 - Si j'ouvre ce fichier avec une autre version d'Excel est-ce que ça va toujours fonctionner ?

 - Comment faire si maintenant les tableaux à indexer ne sont pas collés sur la même feuille mais séparés sur des feuilles différentes comme dans l'exemple ci-dessous ?

https://www.cjoint.com/c/MFcpmaQtIdT

0
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 80
2 juin 2023 à 19:17

RHello,

1- La fonction DANSCOL empile toutes les colonnes du tableau les unes sous les autres. C'est ainsi très facile de faire un EQUIV. Elle ne fonctionne que pour Excel 365 !

2 - Si tes tableaux sont séparés sur des feuilles différentes; c'est autre chose. Avec tes noms déjà définis Option_x et Référence_x, une proposition en E3 :

=SIERREUR(INDEX(INDIRECT("Référence_"&DROITE(C3));EQUIV(D3;INDIRECT("Option_"&DROITE(C3));0));"")

à condition que tes différentes options se terminent bien par 1, 2, 3 etc

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
5 juin 2023 à 13:54

Bonjour,

Effectivement, tout ça fonctionne très bien.

Encore merci.

Une petite difficulté en plus, si les données dans les tableaux d'index et d'équivalence sont totalement différentes comme dans l'exemple ci-dessous, quelle formule peut fonctionner ?

https://www.cjoint.com/c/MFflTPCowS4

Je suis désolé de vous fournir ça en plusieurs étapes. Je ne peux pas vous fournir le tableau sur lequel je travaille réellement et mes tableaux "exemple" auraient dû être dès le départ strictement équivalents à mon tableau de travail. Je ne pensais pas qu'il pouvait y avoir tant d'options intermédiaires selon le niveau de complexité. En tout cas cela ma déjà permis d'apprendre beaucoup de choses.

Merci bien. 

0
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 80
Modifié le 5 juin 2023 à 15:03

Hello,

 T'es le Roi De L'embrouille toi !

En nommant tes listes 2.1, 2.2, 2.3, une proposition Excel 365 :

=INDEX(ASSEMB.V(Liste_3.1;Liste_3.2;Liste_3.3);EQUIV(D4;ASSEMB.V(Liste_2.1;Liste_2.2;Liste_2.3);0))

En rajoutant un indice sous-liste à la liste 1 et en le nommant, une proposition autre version Excel (il y a peut-être plus simple) :

=INDEX(INDIRECT("Liste_3."&INDEX(Liste_1.1;EQUIV(C3;Liste_1;0)));EQUIV(D3;INDIRECT("Liste_2."&INDEX(Liste_1.1;EQUIV(C3;Liste_1;0)));0))

Edit : Pb avec Cjoint pour l'instant pour transmettre le fichier

Edit2  : lien Wetransfer :

https://wetransfer.com/downloads/cdacfc5a6b352b6cd69cd6feba4fb34720230605130245/8b1e46

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
5 juin 2023 à 15:21

:D vraiment désolé.

En tout cas la solution pour 365 fonctionne parfaitement sur le classeur "exemple" et sur le classeur réel.

Pour le moment j'ai une erreur avec la solution pour les autres versions mais je regarderai plus en détail plus tard.

Merci beaucoup à toutes les personnes qui m'ont aidé pour ce projet, vous êtes top !

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
8 juin 2023 à 20:32

Bonjour,

Je reviens à la charge :)

J'essaie de faire fonctionner cette formule donnée plus haut sans succès :

=INDEX(INDIRECT("Liste_3."&INDEX(Liste_1.1;EQUIV(C3;Liste_1;0)));EQUIV(D3;INDIRECT("Liste_2."&INDEX(Liste_1.1;EQUIV(C3;Liste_1;0)));0))

Je pense que c'est tout simplement car il faut, comme indiqué : " rajouter un indice sous-liste à la liste 1 et le nommer".

Mais je n'arrive pas à comprendre ce que ça veut dire et donc je n'arrive pas à la faire.

Quelqu'un peut-il m'aider ?

0
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 80
12 juin 2023 à 09:05

hello,

Me voici de retour, dans la feuille Méta0, j'avais rajouté le numéro de sous-liste correspondant à chaque valeur de la liste 1, 1 pour vert listes 2.1 et 3.1, 2 pour rouge listes 2.2 et 3.2, 3 pour jaune listes 2.3 et 3.3, et j'ai nommé cette liste Liste_1.1

voiili, voilà

https://www.cjoint.com/c/MFmhelESMaA

0
RoiDeLogres Messages postés 8 Date d'inscription vendredi 2 juin 2023 Statut Membre Dernière intervention 6 juillet 2023
6 juil. 2023 à 20:45

Bonjour,

Me voici de retour également.

J'ai eu le temps de me pencher sur la solution pour toutes les versions d'Excel.

Je suis parvenue à adapter la formule pour mon tableau (encore merci beaucoup).

Par contre... ponctuellement, ça ne fonctionne pas.

Si dans la colonne "Type_de_demande" je sélectionne "Parcours_de_scolarisation", dans la colonne "Intitulé" la liste en cascade fonctionne mais dans les colonnes "Code_Motiv" et "Motivation" apparaît l'erreur "#N/A" sauf pour certains choix de la colonne "Intitulé" (comme par exemple : "Rejet hors définition du handicap enfant").

Pareil si dans la colonne "Type_de_demande" je sélectionne "Demandes_génériques".

J'ai l'impression que les choix qui fonctionnent dans ces deux listes en cascade, parviennent à fonctionner car ils vont chercher l'info autre part. Par exemple pour "Rejet hors définition du handicap enfant", ce choix est également présent dans le Type_de_demande : "Orientation_ESMS".

J'espère que l'explication est claire :)

Je ne sais pas s'il est possible de résoudre le problème ou s'il y a des conflits qui rendent la solution inopérante.

Finalement je partage une version soft du fichier d'origine : https://www.cjoint.com/c/MGgsvvnEs2J

0
bigoudiii Messages postés 237 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 25 octobre 2024 80
17 juil. 2023 à 17:21

Hello,

Avec du retard, congés obligent, dans la feuille Métadonnées, inverse Demandes génériques (=>7) et Parcours de scolarisation (=>10)

à tester

0