Formule excel pour former une matrice
Résolu/Fermé
marinevh
-
13 nov. 2017 à 13:02
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 20 nov. 2017 à 00:19
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 20 nov. 2017 à 00:19
A voir également:
- Formule excel pour former une matrice
- Formule excel pour additionner plusieurs cellules - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
4 réponses
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
17 247
13 nov. 2017 à 13:49
13 nov. 2017 à 13:49
Bonjour.
1) Non, ce n'est pas extrêmement clair !
2) Oui, voici comment envoyer un fichier :
1) Non, ce n'est pas extrêmement clair !
2) Oui, voici comment envoyer un fichier :
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Bonjour,
Alors voila l'adresse ou j'ai essayé d'expliquer ce que je voudrais faire:
http://www.cjoint.com/c/GKnnmitDWmH
J'espère que vous pourrez m'aider des Antilles
et si ce n'est toujours pas clair n'hésitez pas a me redemander
ca m'aiderait beaucoup!!
Merci par avance,
Cordialement
Alors voila l'adresse ou j'ai essayé d'expliquer ce que je voudrais faire:
http://www.cjoint.com/c/GKnnmitDWmH
J'espère que vous pourrez m'aider des Antilles
et si ce n'est toujours pas clair n'hésitez pas a me redemander
ca m'aiderait beaucoup!!
Merci par avance,
Cordialement
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
17 247
14 nov. 2017 à 00:10
14 nov. 2017 à 00:10
Désolé !
Mais déjà que je n'y connais pas en courses de chevaux, cela ne m'a pas aidé à comprendre ton tableau, et tes explications n'ont pas suffit à m'éclairer.
D'ailleurs je ne comprends pas pourquoi tu demandes de l'aide alors que tu as déjà inscrit les formules dans tes bulles de commentaire ...
Mais déjà que je n'y connais pas en courses de chevaux, cela ne m'a pas aidé à comprendre ton tableau, et tes explications n'ont pas suffit à m'éclairer.
D'ailleurs je ne comprends pas pourquoi tu demandes de l'aide alors que tu as déjà inscrit les formules dans tes bulles de commentaire ...
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
14 nov. 2017 à 01:25
14 nov. 2017 à 01:25
Bonsoir,
Donc tu as les formules mais tu ne sais pas les positionner avec les bonnes valeurs.
Regarde dans le fichier joint : https://www.cjoint.com/c/GKoay36ysFH
Il y a 2 noms dynamiques : partants et qcol
Le premier donne le nbre de partants de la course de la ligne où il est utilisé.
Le second donne la proba du partant dont le n° est en tête de colonne dans la course dont le n° est sur la ligne où il est utilisé.
Cordialement
Donc tu as les formules mais tu ne sais pas les positionner avec les bonnes valeurs.
Regarde dans le fichier joint : https://www.cjoint.com/c/GKoay36ysFH
Il y a 2 noms dynamiques : partants et qcol
Le premier donne le nbre de partants de la course de la ligne où il est utilisé.
Le second donne la proba du partant dont le n° est en tête de colonne dans la course dont le n° est sur la ligne où il est utilisé.
Cordialement
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
>
marinevh
14 nov. 2017 à 13:13
14 nov. 2017 à 13:13
Bonjour,
Les formules sont dans les noms.
Il suffit de les reproduire dans ton classeur.
Exemple : tu te mets en 'Feuil1 (2)'!D2 du fichier que je t'ai envoyé et tu vas dans le gestionnaire de nom.
Derrière partants tu as la formule =MAX(SI('Feuil1 (2)'!$A$2:$A$32='Feuil1 (2)'!$A2;'Feuil1 (2)'!$B$2:$B$32;0))
Tu adaptes $A$2:$A$32 et $B$2:$B$32 à la dimension de tes données. Tu remarqueras que les références sont absolues.
Ce qui rend dynamique ce nom, c'est l'absence de $ dans la référence $A2 qui fait que le nom partants donne une réponse en fonction de la ligne où on l'utilise.
Pour redéfinir partants dans ta feuille, tu te positionnes sur une cellule de la ligne 2 et tu colles la formule. c'est tout.
Pour qcol, toujours positionné en D2, la formule =RECHERCHEV('Feuil1 (2)'!D$1;SI('Feuil1 (2)'!$A$2:$A$32='Feuil1 (2)'!$A2;'Feuil1 (2)'!$B$2:$C$32;{0.0});2;0) est relative ligne à cause de $A2 et relative colonne du fait de D$1
Il faut donc se repositionner en D2 dans ta nouvelle feuille avant de redéfinir qcol.
Naturellement tu auras adapté les dimensions de tes données dans $B$2:$C$32 et $A$2:$A$32
Tu peux te passer des noms définis que j'ai utilisé pour rendre la formule plus lisible.
Il suffit de remplacer chaque nom par sa formule : =SI(OU(D$1=$B2;D$1>MAX(SI($A$2:$A$32=$A2;$B$2:$B$32;0)));"";$C2/(1-$C2)*RECHERCHEV(D$1;SI($A$2:$A$32=$A2;$B$2:$C$32;{0.0});2;0)/(1-RECHERCHEV(D$1;SI($A$2:$A$32=$A2;$B$2:$C$32;{0.0});2;0)-$C2))
A valider par CTRL+MAJ+ENTER parce c'est une formule matricielle.
Cordialement
Les formules sont dans les noms.
Il suffit de les reproduire dans ton classeur.
Exemple : tu te mets en 'Feuil1 (2)'!D2 du fichier que je t'ai envoyé et tu vas dans le gestionnaire de nom.
Derrière partants tu as la formule =MAX(SI('Feuil1 (2)'!$A$2:$A$32='Feuil1 (2)'!$A2;'Feuil1 (2)'!$B$2:$B$32;0))
Tu adaptes $A$2:$A$32 et $B$2:$B$32 à la dimension de tes données. Tu remarqueras que les références sont absolues.
Ce qui rend dynamique ce nom, c'est l'absence de $ dans la référence $A2 qui fait que le nom partants donne une réponse en fonction de la ligne où on l'utilise.
Pour redéfinir partants dans ta feuille, tu te positionnes sur une cellule de la ligne 2 et tu colles la formule. c'est tout.
Pour qcol, toujours positionné en D2, la formule =RECHERCHEV('Feuil1 (2)'!D$1;SI('Feuil1 (2)'!$A$2:$A$32='Feuil1 (2)'!$A2;'Feuil1 (2)'!$B$2:$C$32;{0.0});2;0) est relative ligne à cause de $A2 et relative colonne du fait de D$1
Il faut donc se repositionner en D2 dans ta nouvelle feuille avant de redéfinir qcol.
Naturellement tu auras adapté les dimensions de tes données dans $B$2:$C$32 et $A$2:$A$32
Tu peux te passer des noms définis que j'ai utilisé pour rendre la formule plus lisible.
Il suffit de remplacer chaque nom par sa formule : =SI(OU(D$1=$B2;D$1>MAX(SI($A$2:$A$32=$A2;$B$2:$B$32;0)));"";$C2/(1-$C2)*RECHERCHEV(D$1;SI($A$2:$A$32=$A2;$B$2:$C$32;{0.0});2;0)/(1-RECHERCHEV(D$1;SI($A$2:$A$32=$A2;$B$2:$C$32;{0.0});2;0)-$C2))
A valider par CTRL+MAJ+ENTER parce c'est une formule matricielle.
Cordialement
marinevh
>
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
14 nov. 2017 à 19:28
14 nov. 2017 à 19:28
Bonjour,
Un grand grand merci pour la clarté de votre message et pour votre aide!!
Bien cordialement
Un grand grand merci pour la clarté de votre message et pour votre aide!!
Bien cordialement
Je me permets de vous recontacter car vous m'aviez fait une réponse super claire la dernière fois, et j'avais juste encore une petite question: je voudrais faire la somme pour chaque numéro de partant retrouver le numéro de partant en colonne, et faire la somme de la colonne pour la course correspondant.
http://www.cjoint.com/c/GKqn2WTpFPH
voila le lien avec les commentaires explicatifs
si vous avez une idée ce serait super gentil!! :)
http://www.cjoint.com/c/GKqn2WTpFPH
voila le lien avec les commentaires explicatifs
si vous avez une idée ce serait super gentil!! :)
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
>
marinevh
Modifié le 17 nov. 2017 à 02:21
Modifié le 17 nov. 2017 à 02:21
Bonsoir,
Ne personnalise pas tes demandes.
Il y a du monde sur ce forum pour te repondre, pas que moi.
En plus, je ne suis pas une référence en terme de simplicité. Donc tu te prives de réponses en personnalisant ta demande.
A part cela, tu peux essayer cette formule : =SOMMEPROD($D$2:$W$32*($D$1:$W$1=$B2)*($A$2:$A$32=$A2)) que tu recopies sur la zone qui te convient.
Tu auras besoin, pour que le résultat soit correct, de modifier les formules en D2:W32 en remplaçant les « « par un 0.
Il faudra également modifier la MFC pour qu’elle prenne en compte le 0 à la place des guillemets.
Maintenant, la formule :
Le principe, c’est de filtrer ta zone de données verticalement pour ne garder que la colonne du partant et horizontalement pour ne garder que les lignes de la course du partant.
($D$1:$W$1=$B2) fournit une matrice ligne de vrai/faux, qui isole la colonne correspondant au partant (ici, B2)
($A$2:$A$32=$A2) fournit une matrice colonne de vrai /faux qui isole les lignes correspondant à la course (ici, A2)
Le produit de cette matrice colonne par cette matrice ligne donne une matrice de 31 lignes sur 20 colonnes contenant des vrais pour les cellules correspondant à la course du partant et au partant.
Il suffit de superposer ce crible avec tes données pour obtenir les valeurs à additionner.
C’est ce que fait la dernière multiplication.
Le sommeprod termine l’affaire.
Cordialement.
Edit : je viens de voir ton fichier et les commentaires en colonne X.
Donc tu mets la formule en X2 avec recopie vers le bas jusqu’en X32.
Ne personnalise pas tes demandes.
Il y a du monde sur ce forum pour te repondre, pas que moi.
En plus, je ne suis pas une référence en terme de simplicité. Donc tu te prives de réponses en personnalisant ta demande.
A part cela, tu peux essayer cette formule : =SOMMEPROD($D$2:$W$32*($D$1:$W$1=$B2)*($A$2:$A$32=$A2)) que tu recopies sur la zone qui te convient.
Tu auras besoin, pour que le résultat soit correct, de modifier les formules en D2:W32 en remplaçant les « « par un 0.
Il faudra également modifier la MFC pour qu’elle prenne en compte le 0 à la place des guillemets.
Maintenant, la formule :
Le principe, c’est de filtrer ta zone de données verticalement pour ne garder que la colonne du partant et horizontalement pour ne garder que les lignes de la course du partant.
($D$1:$W$1=$B2) fournit une matrice ligne de vrai/faux, qui isole la colonne correspondant au partant (ici, B2)
($A$2:$A$32=$A2) fournit une matrice colonne de vrai /faux qui isole les lignes correspondant à la course (ici, A2)
Le produit de cette matrice colonne par cette matrice ligne donne une matrice de 31 lignes sur 20 colonnes contenant des vrais pour les cellules correspondant à la course du partant et au partant.
Il suffit de superposer ce crible avec tes données pour obtenir les valeurs à additionner.
C’est ce que fait la dernière multiplication.
Le sommeprod termine l’affaire.
Cordialement.
Edit : je viens de voir ton fichier et les commentaires en colonne X.
Donc tu mets la formule en X2 avec recopie vers le bas jusqu’en X32.