Recherche correspondance pour tableau

  • Initiateur de la discussion Initiateur de la discussion sev
  • Date de début Date de début

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 !

S

sev

Guest
Bonsoir tout le monde,
Je voudrais automatiser le remplissage de tableaux en recherchant des données correspondantes dans plusieurs feuilles.
Je joint un résumé de fichier
 

Pièces jointes

Re : Recherche correspondance pour tableau

Bonsoir

Un premier essai. Les CTXT ne sont pas forcément indispensables, mais j'ai eu quelques erreurs suite à des problèmes de format. Alors, pour trouver une solution...

Ceci dit, le fait d'avoir mis les données sur plusieurs plages plutôt que sur une seule, composée de colonnes plus longues, complique beaucoup les formules. Certaines fois, il faut réécrire trois fois presque la même chose. Cela aurait été plus simple en disposant les données comme sur la feuille HEUROSE.

A vérifier qu'en même, et à simplifier peut être un peu.

@ plus.
 

Pièces jointes

Dernière édition:
Re : Recherche correspondance pour tableau

Merci , c'est un bon début .
Je vous joint un autre fichier avec le report des données de la feuille ROSE dans la feuille OPTH.
Les N° de train peuvent changer après l'éxécution de la macro1.
Les tableaux à remplir se trouvent maintenant après la ligne 138.
 

Pièces jointes

Re : Recherche correspondance pour tableau

Bonsoir

Apparemment, j'avais oublié la plage dans la feuille rose commençant par la colonne Q (Les formules les plus longues ont été écrites sur 4 lignes, pour les rendre plus lisibles, mieux faire le parallèle entre chaque partie semblable... Pour les lire, il faut élargir la barre de formule). Faudrait que j'achète d'autres lunettes😉

Que faut-il faire d'autre ?

En signalant que les n° de trains peuvent changer avec la macro 1, veux tu dire qu'il faudrait garder quelque part les anciens n° ?

@ plus
 

Pièces jointes

Re : Recherche correspondance pour tableau

Bonsoir,

Une autre formule pour récupérer les "nos de bus de n'importe quel train dans la colonne d138 avec somme prod =

=SOMMEPROD((E138=train1)*(bus1)*1)+SOMMEPROD((E138=train2)*(bus2)*1)+SOMMEPROD((E138=train3)*(bus3)*1)+SOMMEPROD((E138=train4)*(bus4)*1)

le + est égal au ou
on nomme les plages avec insertion nom definir
 

Pièces jointes

Re : Recherche correspondance pour tableau

Re,

Suite

En définissant 1 autre plage : "Case"

Case
=ROSE!$E$6:$T$42

En F138 :
=INDIRECT("Rose!"&ADRESSE(MIN(SI(Train=$E138;LIGNE(Case)));MIN(SI(Train=$E138;COLONNE(Case)))))

Formule matricielle, à valider par ctrl, maj et entrée
 
Re : Recherche correspondance pour tableau

Bonjour

En utilisant les plages et les formules proposées par Monique, on obtient bien sûr des formules beaucoup plus courtes😛, ce qui donne le fichier ci-joint.


Que faut il faire d'autre pour "finir" ce travail ?

@ plus
 

Pièces jointes

Re : Recherche correspondance pour tableau

Bonsoir, ça avance bien.

Pour trouver les cases peut on avoir le même style de formule ?
j'aie essayé cela :

=SOMMEPROD((E139=train)*1;case)


Pourquoi cette formule ne fonctionne pas ?
 
Re : Recherche correspondance pour tableau

Bonjour,

Les cellules « Case » contiennent du texte
SommeProd peut renvoyer un nombre, un n° de ligne, de colonne.

N° de ligne
=SOMMEPROD((E138=train)*LIGNE(case))
N° de colonne, vu la disposition du tableau
=SOMMEPROD((E138=train)*COLONNE(case))

On peut écrire la formule comme ça :
=INDIRECT("Rose!"&ADRESSE(SOMMEPROD((train=$E138)*LIGNE(case));SOMMEPROD((train=$E138)*COLONNE(case))))

En fait, c’est à peine plus long et on la valide simplement par la touche « Entrée »
 
Re : Recherche correspondance pour tableau

Bonsoir, ça avance bien.

=SOMMEPROD((E139=train)*1;case)


Pourquoi cette formule ne fonctionne pas ?

Bonsoir

Cette formule ne fonctionne pas à cause du format des "case". Tu les as rentré sous la forme 3 25. L'espace entre le 3 et le 25 fait qu'excel voit là du texte et non un nombre. Hors, SOMMEPROD fait un calcul sur des nombres, pas sur du texte.

Dans le fichier en pièce jointe ci-dessous, j'ai changé le format des "case" (format personnalisé 0\ 00) pour qu'à l'écran, quand on écrit 325, apparaisse 3 25, mais excel voit le nombre 325, pas le texte 3 25. A partir de là, la formule avec SOMMEPROD fonctionne. Si tu dois rentrer d'autres numéros, vérifie le format et observe le résultat obtenu. Au passage, il a aussi fallu supprimer les CTXT des formules à droite.

On ne peut pas appliquer une formule avec SOMMEPROD avec les heures, car la matrice correspondant aux heures n'a pas la même dimension (hauteur, largeur) que les matrices bus ou train ou case.

On n'a pas intérêt à l'appliquer sur les tableaux les plus à droite car alors, cela fait référence aux trains ou aux bus de la feuille ROSE, et non aux trains de la feuille OPTH (les noms train, bus, case ont été définis par des plages sur la feuille ROSE, pas sur la feuille OPTH).

On finit par s'y perdre dans toutes ces possibilités, ces noms, ces formats, ces feuilles...

Si tu as des questions, ne te gênes pas...

PS: Avec l'explication de Monique, cela devrait aller, 🙂

@ plus
 

Pièces jointes

Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
13
Affichages
475
Réponses
6
Affichages
126
Réponses
10
Affichages
402
Réponses
13
Affichages
385
  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
392
Réponses
11
Affichages
354
Retour