Formule de recherche sur tables multiples

Re-bonjour,

Encore une nouvelle question, désolé... J'ai beau parcourir le forum, je ne trouve pas toutes les réponses que je souhaite.

Voici le fichier d'exemple ou tout est indiqué dedans :

https://www.excel-pratique.com/~files/doc/FichierTestElftor-2.xls

Il y a 4 feuilles:

  • Une liste de modules
  • Une liste de roles dont chaque colonne est un module, une case est cochée lorsqu'un module est attribué à un rôle.
  • Une liste de nom dont chaque colonne est un role, une case est cochée lorsqu'un role est attribué à un nom.
  • Une feuille "Résultat" qui contient la même liste de nom, mais cette fois-ci les modules sont en colonne. Et il faut une formule qui puisse cocher la case, en fonction des feuilles précédentes. Car chaque nom a 0 ou plusieurs rôles, et chaque role a 0 ou plusieurs modules, donc chaque nom a 0 ou plusieurs modules. -> il faut donc cocher les cases aux bons endroits.

J'essaie d'imbriquer les fonctions RECHERCHE, INDEX, etc... mais je n'y arrive pas, j'ai 0 xp d'excel :/

Merci de m'aider une nouvelle fois.

Bonsoir

J'espére que c'est ce que tu cherches, car...Bonjour la Formule et le raisonnement

=SI(ESTERREUR(SI(SI(ESTERREUR(INDEX(Noms;EQUIV(Résultat!$B3;ListeNoms!$B$1:$B$32;0);COLONNE()-1));"";INDEX(Noms;EQUIV(Résultat!$B3;ListeNoms!$B$1:$B$32;0);COLONNE()-1))="x";CHOISIR(NB.SI(DECALER(ListeRoles!$C$3:$X$3;COLONNE()-3;;;);"x");"x";"xx";"xxx";"xxxx";"xxxxx";"xxxxxx");""));"";SI(SI(ESTERREUR(INDEX(Noms;EQUIV(Résultat!$B3;ListeNoms!$B$1:$B$32;0);COLONNE()-1));"";INDEX(Noms;EQUIV(Résultat!$B3;ListeNoms!$B$1:$B$32;0);COLONNE()-1))="x";CHOISIR(NB.SI(DECALER(ListeRoles!$C$3:$X$3;COLONNE()-3;;;);"x");"x";"xx";"xxx";"xxxx";"xxxxx";"xxxxxx");""))

s'incrémente vers la droite et vers le bas.

Classeur joint

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/Elftor.zip

"Essaie de faire plus simple pour la prochaine"

Mouarf, ca c'est de la formule.

C'est très gentil de réfléchir là-dessus amadéus, mais je crains malheureusement que ce ne soit pas la bonne solution. Honnetement je ne comprends rien à la formule mais tu remarqueras qu'au final ca rend la copie du tableau de "ListeNom", avec des croix supplémentaires, qui en fait correspondent au nombre de modules dans le role donné. Donc soit tu n'as pas saisi mon problème, soit tu t'es trompé.

Il faut que chaque nom lui voit attribué un ou plusieurs module (selon la liste en colonne). Les informations sont tirées de la combinaison des deux tables précédentes (ListeNoms et ListeRoles). Il y aura donc 0 ou 1 croix par case, selon que le "nom" doit suivre le module, ou non.

Et sinon, j'ai quelques autres questions en stock, dont certaines seront encore plus difficile Je suis en train de développer un outil de plannification de session de formation pour une tres grosse boite qui refait une majeure partie de son système d'information, avec comme contrainte de le faire uniquement sous excel (sous access, ca aurait été des milliers de fois plus pratique avec des vraies requetes....). L'outil sera ensuite envoyé sur les différents sites à travers le monde pour les formations.

Je vais essayer maintenant de comprendre ta formule, ca me fera apprendre un peu plus excel

Bonjour

OK, message reçu.

"Seuls ceux qui n'essaient pas ne font jamais d'erreur.."

Cordialement,

Amadéus

Bonjour à tous deux

J'ai commencé à réfléchir au problème et j'ai crée une formule à partir de NOM.

Je vais partir pour une semaine aussi je transmets ce que j'ai commencé.

Mon problème actuel c'est que je n'ai pas eu le temps de penser à la recopie sinon la fonction utilisée doit suffire.

https://www.excel-pratique.com/~files/doc/TestElftor.xls

Si rien n'est touvé, je plancherai dessus la semaine prochaine.

Bonjour Colas

J'ai déjà essayé avec des SI, mais c'est dans les superposition de résultats que ça se complique.

Amitiés

Amadéus

Bonjour

Il n'est pas demandé de superposition de résultat.

Dés qu'il y a une croix ou plusieurs on n'en met qu'une.

C'est ce que j'ai compris

Colas a raison car ca restera le même module, on se fiche de savoir s'il peut apparaître plusieurs fois.

Cependant Colas, je crois que ta formule ne fonctionne pas, en ayant fait quelques tests. Je crois que tu recherches, pour le nom 1, que les croix dans le role 1 affilié au nom 1 (je l'ai vu car tu as mis un "2" dans ta première fonction de recherche, alors qu'il doit balayer tous les roles pour qui le nom a une croix et savoir si l'un d'entre eux possède le module 1, information contenue dans ListeRoles). Deuxiemement, il faut savoir que le design de ma feuille initiale est quelque peu imposé, et que tous les modules / noms / roles sont dynamiques et peuvent changer. Donc rien ne doit être figé.

J'ai envie de me taper quand je vois que je suis aussi chieur Désolé encore

Merci à toi aussi d'essayer. C'est très gentil. Mais faut il me faut finir mon outil pour la semaine prochaine justement :X

Bonjour Elftor

Macro XL4 et bouton associé.

Fichier joint.

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/TestElftorV2.xls

Bonjour à tous

L'union fait la force.

à la semaine prochaine

Yeah, vous assurez les mecs

Je pensais faire ca en formule mais je pense qu'un bouton pour la macro suffira très bien. Par contre je ne connaissais pas ce système-là de macro, je vais voir si je peux le retranscrire en VBA si j'ai le temps. Mais dans tous les cas c'est super !

Merci beaucoup et à très bientôt pour d'autres questions encore plus chaudes

Salut le forum

Un matricielle en C3 (A valider par ALT+SHIFT+ENTER)

=SI(SOMMEPROD((TRANSPOSE(ListeRoles!C$3:C$32)="x")*(ListeNoms!$C3:$AF3="x"))<>0;"x";"")

A glisser vers le bas et vers la droite

Le fichier https://www.excel-pratique.com/~files/doc/VersionMyta.zip

Mytå

Salut le Forum

Elftor a écrit :

Mais il me faut finir mon outil pour la semaine prochaine

Plus besoin d'attendre, tu as maintenant une version Macro(Amadéus)

et ma version formule.

Mytå

Bonjour à tous

D'autant plus que la solution SOMMEPROD Matricielle a déjà été utilisée sur le précédent sujet posté par Elftor en début de semaine.

Ne manque plus que la traduction VBA par JeanMarie pour être complet.

et appliquer ce que dit Colas un peu plus haut:

l'union fait la force

FélicitationS

Amadéus

Franchement, je suis épaté par ce forum. Vous êtes au taquet. Il semble y avoir un noyau de bourrin d'excel ici

Je vais opter pour la version formule car c'est le plus pratique par rapport aux specs que j'ai fait pour cet outil. Merci à tous. Je vous prépare une question assez difficile (selon mon humble avis de newbie) pour cette fin de semaine, qui risque de prendre plus de temps de réflexion et de dev :X

Arf,

Est-ce que les formules matricielles sont limites par le nombre de cellules ? Car j'ai besoin d'étendre la formule sur 1000 lignes et 200 colonnes et il semble bloqué à environ 300 lignes * 200 colonnes :/

Bonjour

Je pense en effet que le nombre de formules est limité en fonction de la mémoire disponible. Les Matricielles consomment beaucoup de mémoire.

Je pense que tu devras revenir à la solution par Macro.

Cordialement,

Amadéus

Rechercher des sujets similaires à "formule recherche tables multiples"