Recherche d'une valeur entre deux dates

Bonjour à tous, je suis nouveau sur ce forum. J'ai quelques notion excel, mais là je n'arrive pas à m'en sortir.

Dans le fichier joint, j'ai 2 feuilles.

La feuille A contient des références (sans doublon), une date, etc... La feuille B, comporte une période (du....au...), des références (il peut y a voir des doublons, si plusieurs périodes pour la même référence) et une colonne Code.

Je voudrais que dans ma feuille A, dans la colonne "Absence - Code" s'affiche le code, seulement si la date est dans la période du tableau B pour ma référence.

Dans mon fichier en exemple la cellule F3 devrait contenir 21, puisque pour cette référence ( B78979AA), j'ai une période qui correspond à ma date de la feuille A (10/08/20), du 10/08 au 14/08 (ligne 211 feuille B).

Je bute sur le fait que dans la feuille B il y ai des doublons et faire la recherche non pas sur une valeur mais une période (ma date feuille A doit être comprise dans la période de la feuille B).

L’idéale serait une formule et pas en VBA si possible, car je pense plus simple à reproduire sur mon domaine.

Merci de votre aide.

9test-controle.xlsx (72.69 Ko)

Bonjour et bienvenue,

je n'ai trouvé aucune correspondance de date (sauf erreur de ma part)

=SOMMEPROD((Absences!$C$2:$C$2350='80JS'!A2)*(Absences!$F$2:$F$2350<='80JS'!B2)*(Absences!$G$2:$G$2350>='80JS'!B2))

cette formule donne le nombre de correspondance

à noter que dans l'onglet il faut transformer les fausses dates (texte) en vraies dates pour rechercher

7test-controle.xlsx (82.09 Ko)

Bonjour,

et déjà merci pour ce premier élément de réponse. En revanche, j'ai bien une correspondance, la date ET la référence de la ligne 3 feuille 1 sont bien présente sur la ligne 212 de ma 2ème feuille.

Par contre vous avez raison, sur la feuille absences les dates ne sont pas converties. Je remet le fichier corrigé.

7test-controle.xlsx (74.46 Ko)

Autant pour moi, il y avait un "test ok" qui bloquait la formule sur les dates

Dans la mesure où il n'y a pas de chevauchement de dates ...

=SI(SOMMEPROD((Absences!$C$2:$C$2350='80JS'!A2)*(Absences!$F$2:$F$2350<='80JS'!B2)*(Absences!$G$2:$G$2350>='80JS'!B2)*LIGNE(Absences!$G$2:$G$2350))=0;"";INDEX(Absences!$D$2:$D$2350;SOMMEPROD((Absences!$C$2:$C$2350='80JS'!A2)*(Absences!$F$2:$F$2350<='80JS'!B2)*(Absences!$G$2:$G$2350>='80JS'!B2)*LIGNE(Absences!$G$2:$G$2350))))

Bonjour,

Merci Steelson, je viens de regarder votre dernière réponse et votre tableau. Et votre résultat me semble parfait !!

Je vais tester cela sur mon ficher de production, en espérant pouvoir le reproduire.

En attendant, merci beaucoup !!!

re-Bonjour,

J'ai un petit soucis, sur l'utilisation de la formule proposée par Steelson. En effet, lorsque je change le code absence (colonne D, de la feuille absences) la formule me retourne le code 21 et pas le code réellement utilisé.

Désolé, j'ai un écart de 1 ligne en effet

=SI(SOMMEPROD((Absences!$C$2:$C$2350='80JS'!A2)*(Absences!$F$2:$F$2350<='80JS'!B2)*(Absences!$G$2:$G$2350>='80JS'!B2)*LIGNE(Absences!$G$2:$G$2350))=0;"";INDEX(Absences!$D$2:$D$2350;SOMMEPROD((Absences!$C$2:$C$2350='80JS'!A2)*(Absences!$F$2:$F$2350<='80JS'!B2)*(Absences!$G$2:$G$2350>='80JS'!B2)*LIGNE(Absences!$G$2:$G$2350))-1))

Super !!!! Votre niveau "Fanatique d'Excel" n'est pas usurpé !!!

Rechercher des sujets similaires à "recherche valeur entre deux dates"