Microsoft 365 Problème RECHERCHEV avec plusieurs correspondances possibles pour une même valeur

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 !

floflatch22

XLDnaute Nouveau
Bonjour à tous,

J'aurais besoin d'aide concernant une formule que je souhaite mettre en place dans un fichier mais sur laquelle je reste bloqué depuis plusieurs jours...
Je vous explique mon problème:
J'ai un fichier avec 5 colonnes.
Les colonnes qui nous intéressent sont la 1ère et la 5ème.
La 1ère colonne est la date au format aaaammjj.
La 5ème colonne contient différent types d'entraînements (REA, COMP, N3...) ou compétitions (MATCH Type 1, MATCH Type 2, MATCH Type 3, MATCH CD...)
Je souhaiterais indiquer dans une nouvelle colonne:
> "MATCHDAY" dès que la ligne correspond aux types de matchs suivant: "MATCH Type 1" ou "MATCH Type 2" ou "MATCH CD" (Pas si c'est "MATCH Type 3")
> Pour les lignes dont la date correspond à la veille d'une date "MATCHDAY", indiquer "JM1"
> Pour les lignes dont la date correspond à 2 jours avant une date "MATCHDAY", indiquer "JM2"
> Pour les lignes dont la date correspond à 3 jours avant une date "MATCHDAY", indiquer "JM3"
> Pour les lignes dont la date correspond au lendemain d'une date "MATCHDAY", indiquer "JP1"
> Pour les lignes dont la date correspond à 2 jours après une date "MATCHDAY", indiquer "JP2"
> Pour les lignes dont la date correspond à 3 jours après une date "MATCHDAY", indiquer "JP3"

Suivant les dates des compétitions, il est possible qu'un même jour soit "JP1" et "JM2" par exemple. Dans ce cas là, je souhaite concatener les 2 infos en "JP1JM2".

Comme vous pouvez le voir sur le fichier joint, la seule solution que j'ai trouvée pour l'instant est d'utiliser 7 colonnes intermédiaires (colonnes A à G) pour faire chacune de ces démarches indépendamment et les concatener dans une 8ème (colonne H correspondant au résultat définitif).

Hormis le fait que je n'ai aucun doute qu'il existe une formule plus simple et plus efficace que de passer par autant de colonnes intermédiaires, je me retrouve encore avec un problème m'empêchant d'obtenir le résultat désiré.
En effet, étant donné que pour une même date je peux avoir différents types d'entraînements ou compétitions, mes RECHERCHEV des colonnes B à G basées sur les dates ne prennent en compte que la 1ère ligne de la date cherchée.
Ainsi, en prenant un exemple concret de mon fichier:
A la date 20250314, ma 1ère colonne détecte bien que c'est un "MATCHDAY".
Je devrais donc avoir pour les dates suivantes:
> 20250313, "JM1"
> 20250312, "JM2"
> 20250311, "JM3"
> 20250315, "JP1"

Or, mes RECHERCHESV ne détectent que la 1ère ligne de chaque date. Si cette ligne ne correspond pas à un des types de compétitions qui nous intéressent ("MATCH Type 1" ou "MATCH Type 2" ou "MATCH CD") mais par exemple à "REA", "COMP", ou "MATCH Type 3" par exemple, la recherche est considérée comme infructueuse et n'indique donc pas "JM1, "JM2", etc...

Est-ce que quelqu'un pourrait m'éclairer et m'orienter pour réussir à résoudre cette problématique SVP?

Un grand merci d'avance pour votre aide!

Florian
 

Pièces jointes

Hello

VB:
Suivant les dates des compétitions, il est possible qu'un même jour soit "JP1" et "JM2" par exemple. Dans ce cas là, je souhaite concatener les 2 infos en "JP1JM2".

t'es sur de toi sur ce coup la??
Comment un jour peut il à la fois etre 1 jour AVANT le Match et 2 jours APRES le match??
 
si j'ai bien compris, Voir PJ avec une macro
Bonjour,

Désolé pour le retard de ma réponse mais les mails étaient arrivés dans mes indésirables...

Un très grand merci à tous les 2 pour vos résolutions!
Je ne regrette pas de vous avoir sollicités car en effet la solution était bien au-delà de mes compétences et vous m'avez fait gagner un temps précieux!

Merci encore à vous 2 🙏

Cordialement
 
Bonjour, je vois que tu es sous O365... je vais t'orienter vers mon outil fetish powerquery qui fait très bien ce genre chose, les relations entre les tables. Une relation de Gauche -> Droite et si la droite contient plus valeurs pour une même clef de recherche les lignes sont automatiquement rapatriées vers la gauche... bon ça demande un peu d'investissement. Gros avantage : ZERO FORMULES EXCEL ! 🙂

Nous avons désormais un super outil intégré à Excel les 1er reflexes de passer par des Macros pourrait peut-être être mis de côté dans une 1er temps et seulement si cela devient incontournable passer par des Macros ou combiner Macros+PowerQuery
C'est une méthode que j'applique maintenant dans mes prestations et bien souvent je suis sur le bon chemin 🙂
 
Re
voici en image
1744709411424.png

et petit fichier qui va bien !
 

Pièces jointes

  • 1744709093387.png
    1744709093387.png
    55.9 KB · Affichages: 0
  • 1744709155992.png
    1744709155992.png
    57.2 KB · Affichages: 2
  • 1744709270849.png
    1744709270849.png
    55.9 KB · Affichages: 2
  • ProblemeEXCEL_Via_OGURUMA.xlsx
    ProblemeEXCEL_Via_OGURUMA.xlsx
    257.1 KB · Affichages: 3
Ce que je trouve incroyable c'est que l'on parle d'écarts de 1 2 ou 3 jours alors que les valeurs en colonne Date ne sont même pas des dates !!!
Cela dit après avoir converti en dates les valeurs de la colonne I la solution des 7 colonnes intermédiaires du post #1 va très bien.

Formule en A5 :
Code:
=REPT("MATCHDAY";OU(M5="MATCH Type 1";M5="MATCH Type 2";M5="MATCH CD"))
Formule en B5 à tirer à droite en adaptant les constantes :
Code:
=REPT("JP1";SIGNE(NB.SI.ENS($I:$I;$I5-1;$A:$A;"MATCHDAY")))
Comme on le voit ces formules fonctionnent sur toutes versions Excel depuis Excel 2007.
 

Pièces jointes

On peut supprimer 6 des 7 colonnes intermédiaires, nouvelle formule en B5 :
Code:
=A5&REPT("JP1";SIGNE(NB.SI.ENS(C:C;C5-1;A:A;"MATCHDAY")))&REPT("JP2";SIGNE(NB.SI.ENS(C:C;C5-2;A:A;"MATCHDAY")))&REPT("JP3";SIGNE(NB.SI.ENS(C:C;C5-3;A:A;"MATCHDAY")))&REPT("JM1";SIGNE(NB.SI.ENS(C:C;C5+1;A:A;"MATCHDAY")))&REPT("JM2";SIGNE(NB.SI.ENS(C:C;C5+2;A:A;"MATCHDAY")))&REPT("JM3";SIGNE(NB.SI.ENS(C:C;C5+3;A:A;"MATCHDAY")))
Edit : les $ étant maintenant inutiles je les ai enlevés.
 

Pièces jointes

Dernière édition:
Bonjour à tous
Une solution par formules 365
Bonjour,

Désolé pour le retard de ma réponse mais les mails étaient arrivés dans mes indésirables...

Un très grand merci à tous les 2 pour vos résolutions!
Je ne regrette pas de vous avoir sollicités car en effet la solution était bien au-delà de mes compétences et vous m'avez fait gagner un temps précieux!

Merci encore à vous 2 🙏

Cordialement
On peut supprimer 6 des 7 colonnes intermédiaires, nouvelle formule en B5 :
Code:
=A5&REPT("JP1";SIGNE(NB.SI.ENS(C:C;C5-1;A:A;"MATCHDAY")))&REPT("JP2";SIGNE(NB.SI.ENS(C:C;C5-2;A:A;"MATCHDAY")))&REPT("JP3";SIGNE(NB.SI.ENS(C:C;C5-3;A:A;"MATCHDAY")))&REPT("JM1";SIGNE(NB.SI.ENS(C:C;C5+1;A:A;"MATCHDAY")))&REPT("JM2";SIGNE(NB.SI.ENS(C:C;C5+2;A:A;"MATCHDAY")))&REPT("JM3";SIGNE(NB.SI.ENS(C:C;C5+3;A:A;"MATCHDAY")))
Edit : les $ étant maintenant inutiles je les ai enlevés.
Merci pour cette solution.
Je vois cependant qu'un beug persiste lorsqu'une date correspondant à "JM1","JM2","JM3","JP1","JP2" ou "JP3" est à cheval sur 2 mois.
Le calcul "colonne C-1" ou "colonne C+1" ne fonctionne pas étant donné que les nombres ne se suivent pas.
Exemple:
20250326 : JM3 = OK
20250327 : JM2 = OK
20250328 : JM1 = OK
20250329 : MATCHDAY = OK
20250330 : JP1 = OK
20250331 : JP2 = OK
20250401 : JP3 = BEUG car 20250401-3 n'est pas égal à 20250329
 
Je vois cependant qu'un beug persiste lorsqu'une date correspondant à "JM1","JM2","JM3","JP1","JP2" ou "JP3" est à cheval sur 2 mois.
Le calcul "colonne C-1" ou "colonne C+1" ne fonctionne pas étant donné que les nombres ne se suivent pas.
Exemple:
20250326 : JM3 = OK
20250327 : JM2 = OK
20250328 : JM1 = OK
20250329 : MATCHDAY = OK
20250330 : JP1 = OK
20250331 : JP2 = OK
20250401 : JP3 = BEUG car 20250401-3 n'est pas égal à 20250329
Que dites-vous-là ? Regardez mon fichier du post #11.

Il donne les bons résultats car comme je l'ai dit j'utilise de vraies dates 26/03/2025, 27/03/2025... 01/04/2025.
 
Concernant la rapidité des calculs, chez moi :

- les formules du fichier post #11 se recalculent en 18 secondes car les plages des NB.SI.ENS sont illimitées

- avec ce fichier qui utilise un tableau structuré les formules se recalculent en 1,2 seconde, en B5 :
Code:
=[@['[Matchday']]]&REPT("JP1";SIGNE(NB.SI.ENS([Date];[@Date]-1;['[Matchday']];"MATCHDAY")))&REPT("JP2";SIGNE(NB.SI.ENS([Date];[@Date]-2;['[Matchday']];"MATCHDAY")))&REPT("JP3";SIGNE(NB.SI.ENS([Date];[@Date]-3;['[Matchday']];"MATCHDAY")))&REPT("JM1";SIGNE(NB.SI.ENS([Date];[@Date]+1;['[Matchday']];"MATCHDAY")))&REPT("JM2";SIGNE(NB.SI.ENS([Date];[@Date]+2;['[Matchday']];"MATCHDAY")))&REPT("JM3";SIGNE(NB.SI.ENS([Date];C5+3;['[Matchday']];"MATCHDAY")))
 

Pièces jointes

- 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

Discussions similaires

Réponses
8
Affichages
114
Réponses
13
Affichages
164
Réponses
0
Affichages
305
Retour