Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

zephoenix

XLDnaute Nouveau
Bonsoir à tous,

Je ne sais pas si j'ai tout lu le forum, mais j'y suis depuis plusieurs heures et toutes les réponses que j'ai pu consulter m'ont donné espoirs et désespoirs :)
Au bout du bout je ne peux que vous demander de l'aide.

Voila ma demande peut être simpliste aux premiers abords mais malgré les macros, les BDLire et autre transposé, rien n'y fait. Bon il faut aussi que je vous dise que je ne suis pas vraiment un cador en macro et c'est probablement pourquoi je n'arrive pas à résoudre ce problème ...

J'ai une BDD des notes des joueurs de foot de la Ligue 1 classée par le n° de la journée (colonne B)
Là où je coince, c'est pour restructurer cette BDD en version colonne.

Concrètement, à partir de la Ligne C125, j'aimerais que la macro ou la fonction, soit capable de m'afficher la note du joueur, journée par journée (colonne de C124 à N124)

Ais-je été compréhensible ?

En remerciant par avance les bonnes âmes qui prendront pitié de moi :eek:

Bonne soirée à tous
 

Pièces jointes

  • Notes_joueurs_L1.zip
    47.4 KB · Affichages: 39

Paritec

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

bonjour Zephoenix, le forum
bon alors ou il est trop tard ou tes explications sont pas convaincantes mais moi j'ai regardé la colonne B mais je vois bien des 1 à 12
mais quoi mettre en C125 à N125 alors là?????????? les noms ils sont ou ? et par rapport à quoi? et comment ?? bref expliques un peu
un exemple de ce que tu veux et ou tu trouves les infos et on va te faire cela sans soucis, mais avant il faut comprendre ce que tu veux faire.
Pour toi c'est simple tu le sais on s'en doute bien, mais pour nous??
a+
papou :)
 

zephoenix

XLDnaute Nouveau
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour Paritec,

Oui je confirme il devait être bien trop tard pour avoir les idées claires et poster ma demande !!!

Concrètement : en cellule C125, je souhaiterais une fonction ou une macro qui puisse aller me récupérer dans la BDD du dessus (A1:BL120) :
- la note du joueur de la cellule A125 (Vincent Plante)
- qui joue à cellule B125 (Arles Avignon).
- selon la journée du championnat C124 (Journée 1)

Cette note se trouve en BD9 car :
- Vincent Planté est en BC9
- il joue à Arles Avignon (cellule H9)
- la journée est la 1 (cellule B9)

et je souhaiterai qu'elle apparaisse en C125.

Les conditions sont donc le nom des joueurs, leurs équipes et la journée en A124, B124, et C124

Et ainsi de suite ...
En cellule D125 pour la journée 2 de Vincent Planté à Arles Avignon, il faudrait que la fonction récupère la note qui se trouve en J20, car :
- Vincent Planté apparait en I20
- il joue bien à Arles Avignon en F20
- la journée est bien la 2ème B20


En espérant que la nuit a été des plus reposantes pour mon esprit et mes explications

Merci d'avance

Bonne journée
 

Tibo

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour,

Je te propose cette formule en C125 :

Code:
=SOMMEPROD((DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;8;NB.SI($B:$B;DROITE(C$124;2)*1);64)=SUPPRESPACE($A125))*(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;7;NB.SI($B:$B;DROITE(C$124;2)*1))=$B125);(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;9;NB.SI($B:$B;DROITE(C$124;2)*1);64)))

à recopier vers le bas et vers la droite.

Pas vérifié, je te laisse donc contrôler

@+
 

JCGL

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour à tous,

Un essai avec ce que j'ai compris :

=SI(ESTNA(RECHERCHEV(SUPPRESPACE($A125);Base;DROITE(C$124;1)*2;0));"";RECHERCHEV(SUPPRESPACE($A125);Base;DROITE(C$124;1)*2;0))
A+ à tous

Édition : Oups pas vu Tibo... Salut
 

Pièces jointes

  • JC Notes_joueurs_L1.zip
    163.5 KB · Affichages: 31
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

re, salut Jean-Claude :),

Une correction de la formule proposée pour tenir compte de Equip_Dom et Equip_Ext :

Code:
=SOMMEPROD((DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;8;NB.SI($B:$B;DROITE(C$124;2)*1);64)=SUPPRESPACE($A125))*((DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;5;NB.SI($B:$B;DROITE(C$124;2)*1))=$B125)+(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;7;NB.SI($B:$B;DROITE(C$124;2)*1))=$B125));(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;9;NB.SI($B:$B;DROITE(C$124;2)*1);64)))
@+
 

zephoenix

XLDnaute Nouveau
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour Tibo,

Merci pour ton retour.
Au premier regard, c'est mortel. Ca semble fonctionner super bien.
Je suis entrain de tout regarder.
Vraiment merci beaucoup et clairement je n'aurai pas été capable de le faire tout seul.
Je vais essayer de détailler tes fonctions une par une car je n'en comprends pas la moitié (et pourtant je me croyais pas mauvais ;-)

Vraiment merci beaucoup
 

zephoenix

XLDnaute Nouveau
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonsoir JCGL,

Merci à toi aussi pour ton retour qui semble fonctionner que partiellement car cette formule ne récupère qu'une ou deux note par équipe.
Et vu que je ne comprends guère plus ta formule que celle de Tibo, je ne pourrais même pas t'aider pour t'aiguiller à l'optimiser :-(
Dommage car elle est plus simple à analyser pour moi lol !!!

Bonne soirée
 

JCGL

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour à tous,

Pas de problème mon cher zephoenix, si j'avais vu que l'ami Tibo était passé avant moi, je ne serai pas intervenu.

Au plaisir de te croiser
A+ à tous
 

Tibo

XLDnaute Barbatruc
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour à tous,

Petite tentative d'explication :

La fonction DECALER permet de définir une matrice (ou plage) de cellules correspondant à un critère. Voir l'aide sur cette fonction qui nous dit :

DECALER(réf;lignes;colonnes;hauteur;largeur)


Dans la formule proposée, la première matrice est définie ainsi :

Matrice 1 :

Code:
DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;8;NB.SI($B:$B;DROITE(C$124;2)*1);64)
On part de A1,

EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1 : permet de définir le rang de la première ligne de la journée "j"

NB.SI($B:$B;DROITE(C$124;2)*1) : définit la hauteur de la matrice (nombre de lignes par journée)

64 : correspond à la largeur de ton tableau

Sur cette première matrice, on fait un test pour trouver les cellules contenant le nom du joueur.

Matrice 2 :

La deuxième matrice (en fait, une addition de matrices pour faire un OU) :

Code:
((DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;5;NB.SI($B:$B;DROITE(C$124;2)*1))=$B125)+(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;7;NB.SI($B:$B;DROITE(C$124;2)*1))=$B125))
Permet de tester les lignes où le club Equipe_Dom ou Equipe_Ext correspond au club du joueur

La multiplication de matrice 1 x matrice 2 va nous retourner une nouvelle matrice composée de 0 et de 1. Les 0 correspondent à faux (conditions non remplies) et le 1 (il n'y en a qu'un seul) correspond à la condition journée + joueur + club

Matrice 3 :

Code:
(DECALER($A$1;EQUIV(DROITE(C$124;2)*1;$B:$B;0)-1;9;NB.SI($B:$B;DROITE(C$124;2)*1);64))
Cette dernière matrice, qui est décalée d'une colonne par rapport à la première, permet de récupérer la note

En multipliant par le produit de matrice précédant (matrice 1 x matrice 2), et en intégrant le tout dans un SOMMEPROD, on obtient la note.

Si le nombre de lignes par journée était fixe, on pourrait légèrement simplifier, car on aurait plus besoin de définir le nombre de lignes. Or, on a 9 lignes pour la journée 1 et 10 lignes pour les autres. Je n'ai pas prêté attention pour voir si certains critères calculés pouvaient être remplacés par une valeur fixe.

Voila pour la tentative d'explication.

Pas sûr qu'elle soit bien claire, mais en te familiarisant d'abord avec la fonction DECALER, puis ensuite en examinant en détail chaque matrice, j'espère que tu finiras par comprendre cette formule.

@+
 

zephoenix

XLDnaute Nouveau
Re : Recherche et Extraction d'une valeur dans une BDD avec plusieurs critères

Bonjour Tibo,

Merci Merci Merci !!!
Merci d'avoir passé du temps sur le sujet
Merci d'avoir trouvé la solution
Merci d'avoir pris de ton temps pour m'expliquer cette fonction.
Je m'y attele de suite

Vraiment ce forum est une tuerie et les gens qui le font vivre sont tops

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 889
Membres
101 831
dernier inscrit
gillec