Croisement d'information

Bonjour,

J'essai de croiser des informations dans un tableau mais avec les contraintes et les formules excel que je connais et bien je n'y arrive pas. C'est un vrai casse-tête.

Comment feriez-vous? Sachant que je préfère les formules aux macros que je ne maîtrise pas bien. Même si là je crois que l'option macro s'impose.

Bref dans mon premier onglet j'ai ma liste de sportifs.

Sur une semaine ces sportifs sont soit conducteurs soit transportés. Un conducteur peut transporter 0, 1 ou 2 autres sportifs maximum.

J'importe d'un autre logiciel le nom des conducteurs avec les données qui vont avec, je dois donc garder la forme car je fais un copier/coller.

D'une semaine sur l'autre ça peut changer, un conducteur peut être transporté et vis versa.

Mais j'aurais toujours 5 lignes. Si le conducteur n'a pas conduit sur un jour la ligne de données sera vide.

Ensuite je saisi le nom des joueurs transportés devant le conducteur en question.

En bas, j'ajoute le nom des transportés, j'ai besoin des 5 lignes. Les données du sportif transportés sont les mêmes que celles du conducteur.

J'aimerais automatisé le tableau de la ligne 25 à 54 puisqu'au final toutes les infos sont déjà en haut. Mais par quel bout commencer?

ça fait "tableau croisé dynamique" mais sous forme de formule. Je peux faire des formule en SI avec des colonnes intermédiaires cachées? Vers quoi iriez vous?

Par avance merci beaucoup

11classeur1.xlsx (15.46 Ko)

Bonsoir,

mmm je m'ensevelie sous les formules sans réussir à grand chose.... Voici mon avancement (ou le recule peut-être)

2classeurtest.xlsm (22.90 Ko)

Bonjour,

A la lecture de ton message ... et à l'ouverture de ton fichier ... si tu le permets ...

ton objectif n'apparait vraiment pas dans la plus grande des clartés ...

Du coup ... j'ai essayé de deviner ...

Ci-joint une proposition à étudier ...

Il faudrait que tu profites de ton fichier pour présenter le résultat que tu attends ...

même en saisissant manuellement ces résultats ... et en expliquant ce qui conduit à ces résultats ...

Bonjour James007! Décidément tu es mon superman d'Excel...

Tu es bien parti dans liste des joueurs c'est ce que j'ai échoué à faire! :-/

Allé cette fois je vais essayer de bien expliquer les choses en 1 message et non en 14.

Mon fichier de base avec les annotations.

De mon coté j'ai regardé pleins de tutos sur les formules matricielles alors quand c'est simple j'y arrive mais quand c'est compliqué j'ai plus de difficulté à les rédiger.

Les INDEX et EQUIV, en mode simple OK En mode imbriqué je suis larguée. Mais je continue à essayer de comprendre grâce à tout ce que je trouve sur Internet.

3classeurtest.xlsm (25.41 Ko)

Bonjour,

Au risque de me répéter ...

Il faudrait que tu profites de ton fichier pour présenter le résultat que tu attends ...

même en saisissant manuellement ces résultats ... et en expliquant ce qui conduit à ces résultats ...

Tu veux que je mette les valeurs dans ton tableau c'est cela? Car dans le mien j'avais mis en violet des données.

Dans ton fichier j'ai mis en violet les résultats attendus. Et j'essai de comprendre comment tu as fais ceci:

=SIERREUR(INDEX(maplage;EQUIV(0;NB.SI(maplage;"<"&maplage)-SOMME(NB.SI(maplage;A$1:A1));0));""

Re,

Merci ... pour la plage complétée B25 : B54 ...

Dans ta liste de 6 noms répétés cinq fois ....existe-t-il une logique particulière pour l'ordre des personnes transportées ...?

Tu avais mentionné l'ordre alphabétique ... et je constate que Dianne n'apparait qu'en ligne 40 ... ? pourquoi ...?

Par ailleurs, dommage que tu n'aies pas profité de ton message et de ton intervention sur le fichier test pour exposer, de la même façon, .... ta logique pour ta colonne C : C25:C54 ...

Re,

Quelques devinettes plus tard ...

Ci-joint ton fichier test ... final ...

En espèrant que cela t'aide ...

James007 je vois que tu as trouvé la solution pour les colonnes B et C. Tu es trop fort!

Merci.

Moi je vais étudier cela (index, equiv ent....) il faut que je comprenne la formule Là je suis sur mon portable c'est pas pratique. Je risque de te poser des questions....

Dans tous les cas merci.

Content d'avoir pu te dépanner ...

Merci ... pour tes remerciements ...

Bonne Continuation

SIERREUR(INDEX(maplage;EQUIV(A25&B25;$A$2:$A$21&passagers2;0));SIERREUR(INDEX(maplage;EQUIV(A25&B25;$A$2:$A$21&passagers1;0));"Absent"))

Si en B tu ne trouves pas le premier prénom (erreur) va chercher dans la deuxième colonne des transportés c'est ça? Magnifique.

Celle ci me pose plus de problème de compréhension Dans liste, liste des conducteurs. Le but était d'aller chercher le nom des conducteurs et de lui demander à ce qu'il n'apparaisse qu'une seule fois:

SIERREUR(INDEX(maplage;EQUIV(0;NB.SI(maplage;"<"&maplage)-SOMME(NB.SI(maplage;A$1:A1));0));"")

INDEX recherche une valeur parmis la liste des conducteurs , EQUIV= trouve le N° de la ligne ( valeur recherchée 0???, NB.SI matrice des conducteurs "<" ??? et la liste des conducteurs

NB.SI(où voulez-vous rechercher ?;que voulez-vous rechercher ?)

Félicitations pour ta compréhension des matricielles ...

lol j'ai l'impression que tu as utilisé toutes les fonctions excel existante, je suis en train de toutes les potasser!!!

Ce lien m'aide beaucoup : http://boisgontierjacques.free.fr/pages_site/sommeprod.htm

Bonjour,

Si tu as vraiment envie de te plonger dans ... l'univers des Matricielles ...

dis-le moi ...je te communiquerai un ou deux sites de ' Dingos ' Complets ....

Oui oui oui, je veux apprendre à rédiger ces formules. Si tu as des liens je prends....

J'ai pas mal exploré hier mais suis pas au point encore.

Merci

Bonjour,

J'ai un problème....

J'ai refait le tableau test avec mon tableau réel qui a des plages plus longues. J'ai bien compris la formule matricielle qui met dans l'ordre, qui enlève les vides,... J'arrive à refaire tout comme toi sauf la formule qui combine les transportés 1 et les transportés 2.

=SIERREUR(SIERREUR(INDEX($E$2:$E$4; EQUIV(LIGNES(F$2:$F2)-1; NB.SI($E$2:$E$4; "<"&$E$2:$E$4)+NB.SI($D$2:$D$6; "<"&$E$2:$E$4)+SI((NB.SI($E$2:$E$4; $E$2:$E$4)+NB.SI($D$2:$D$6; $E$2:$E$4))<=NB.SI($F$1:F1; $E$2:$E$4); 0; NB.SI($F$1:F1; $E$2:$E$4)); 0)); INDEX($D$2:$D$6; EQUIV(LIGNES(F$3:$F3)-1; NB.SI($D$2:$D$6; "<"&$D$2:$D$6)+NB.SI($E$2:$E$4; "<"&$D$2:$D$6)+SI((NB.SI($D$2:$D$6; $D$2:$D$6)+NB.SI($E$2:$E$4; $D$2:$D$6))<=NB.SI($F$1:F1; $D$2:$D$6); 0; NB.SI($F$1:F1; $D$2:$D$6)); 0)));"")

Dans mon tableau j'ai la liste des transportés 1 en E et la liste des transportés 2 en H ces colonnes s'arrêtent à la ligne 142. Biensur elles sont vide avant 142.

La je veux lui dire de prendre ma liste en E jusqu'à ce que tu arrive sur une cellule vide et ensuite reprend H jusqu'à une cellule vide et arrête toi. Met tout ça en I

je bloque

Bonjour,

Pour que l'on puisse parler des mêmes choses ...

il ne faut pas hésiter à joindre ton fichier dans lequel.... ' çà coince '

C'est la formule de la colonne F que je n'arrive pas à comprendre et donc à refaire sur mon tableau réel. Dans mon tableau réel j'ai la même liste de transportés 1 et 2 (trop fière j'ai compris et réécris les formules)

Dans la colonne F tu as réussi à lui dire de mettre les infos de E et D en combiné et dans l'ordre alphabetique.

Ce que j'essai de faire c'est d'étendre cette formule matricielle jusqu'à la ligne 142.

Quand j'intègre ta formule à mon tableau réel, le m'arrête en toute logique à la ligne 6

Je me suis dit, pas grave, je vais modifier la formule

SIERREUR(SIERREUR(INDEX($H$2:$H$140; EQUIV(LIGNES(I$2:$I2)-1; NB.SI($H$2:$H$140; "<"&$H$2:$H$140)+NB.SI($E$2:$E$142; "<"&$H$2:$H$140)+SI((NB.SI($H$2:$H$140; $H$2:$H$140)+NB.SI($E$2:$E$142; $H$2:$H$140))<=NB.SI($I$1:I1; $H$2:$H$140); 0; NB.SI($I$1:I1; $H$2:$H$140)); 0)); INDEX($E$2:$E$142; EQUIV(LIGNES(I$3:$I3)-1; NB.SI($E$2:$E$142; "<"&$E$2:$E$142)+NB.SI($H$2:$H$140; "<"&$E$2:$E$142)+SI((NB.SI($E$2:$E$142; $E$2:$E$142)+NB.SI($H$2:$H$140; $E$2:$E$142))<=NB.SI($I$1:I1; $E$2:$E$142); 0; NB.SI($I$1:I1; $E$2:$E$142)); 0)));"")

j'avais pas terminé mon mail...

En fait il faut écire autant de fois qu'il y a de ligne la partie?

+NB.SI($E$2:$E$142; $H$2:$H$140))<=NB.SI($I$1:I1; $H$2:$H$140); 0; NB.SI($I$1:I1; $H$2:$H$140)); 0)); INDEX($E$2:$E$142; EQUIV(LIGNES(I$3:$I3)-1; NB.SI($E$2:$E$142; "<"&$E$2:$E$142)

Sauf que je ne sais pas à l'avance si je vais avoir 10 ou 20 transportés

Rechercher des sujets similaires à "croisement information"