XL 2013 Recherche cellule entre deux dates

Flozou

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterai sur mon fichier excel, afficher automatiquement dans la colonne A le poste des salariés arrivés entre deux dates, par exemple entre 01/01/2020 et le 31/12/2020.

J'ai beau cherché je n'ai pas trouvé de formule adéquates.

Vous trouverez ci-joint le fichier Excel.

Je vous remercie par avance

Cordialement
 

Pièces jointes

  • Forum Excel.xlsx
    14.7 KB · Affichages: 24

Flozou

XLDnaute Nouveau
Bonjour à tous,

A vérifier

JHA
Bonjour, la formule fonctionne mais je n'arrive pas à la transposer sur mon excel, d'ailleurs dans votre fichier, il y a ce symbole au début de formule { qui disparait automatiquement quand je clique sur la formule et me rend une cellule vide. Je ne sais pas si c'est à cause de la version d'excel, j'ai inscris 2013, sur le forum je me suis malheureusement trompé j'ai bien excel 2016.
Savez-vous où est le problème ?
MErci de votre réponse
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Ce sont des formules matricielles, les accolades se mettent de chaque côté de la formule quand tu la valides par Ctrl+Maj+Entrée.

Mets-toi sur une de ces formules, puis F2 et tu valides par Ctrl+Maj+Entrée
ensuite tu copies vers le bas.

JHA
 

Flozou

XLDnaute Nouveau
Bonjour à tous,

Ce sont des formules matricielles, les accolades se mettent de chaque côté de la formule quand tu la valides par Ctrl+Maj+Entrée.

Mets-toi sur une de ces formules, puis F2 et tu valides par Ctrl+Maj+Entrée
ensuite tu copies vers le bas.

JHA
Bonjour, merci de votre réponse vous m'aidez beaucoup, j'ai une autre question d'où viennent le "-5" ainsi que me "-2" je ne comprends, pensez-vous que c'est pas aussi la cause du fait que je n'arrive toujours pas à l'exporter ?

Merci de votre réponse
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

La formule matricielle en "A3" de la feuil1 est:

VB:
=SIERREUR(INDEX(Feuil2!$A$6:$A$158;PETITE.VALEUR(SI((Feuil2!$A$6:$A$158>=Feuil1!$B$1)*(Feuil2!$A$6:$A$158<=Feuil1!$D$1)*(Feuil2!$C$6:$C$158<>"")*(NON(ESTNUM(CHERCHE("recruteuse";Feuil2!$C$6:$C$158))));LIGNE(Feuil2!$A$6:$A$158)-5);LIGNE()-2));"")
On recherche donc avec la fonction index() dans la feuil2 la plage $A$6:$A$158.
puis on utilise la fonction petite.valeur avec des critères
SI((Feuil2!$A$6:$A$158>=Feuil1!$B$1)*(Feuil2!$A$6:$A$158<=Feuil1!$D$1)*(Feuil2!$C$6:$C$158<>"")*(NON(ESTNUM(CHERCHE("recruteuse";Feuil2!$C$6:$C$158))))
suite à ces critères on demande de retourner le N° de ligne pour avoir la bonne valeur de l'index
LIGNE(Feuil2!$A$6:$A$158)-5
soit de la ligne 6 à la ligne 158
le "-5" est pour débuter à 1 et non à 6 car les données sur le feuil2 débutent en "A6"
(ligne 6 ) - 5 = 1
(ligne 7) -5 = 2
etc..
avec petite.valeur(), on doit donner la position de la petite valeur à retourner suivant les critères retenus.

la formule est en "A3" donc avec ligne()-2 on retourne la première petite valeur.
Quand tu vas recopier vers le bas exemple en "A4" ligne()-2 sera le seconde petite valeur etc..

J'espère que cela est plus clair pour toi.

JHA
 

Flozou

XLDnaute Nouveau
Bonjour à tous,

La formule matricielle en "A3" de la feuil1 est:

VB:
=SIERREUR(INDEX(Feuil2!$A$6:$A$158;PETITE.VALEUR(SI((Feuil2!$A$6:$A$158>=Feuil1!$B$1)*(Feuil2!$A$6:$A$158<=Feuil1!$D$1)*(Feuil2!$C$6:$C$158<>"")*(NON(ESTNUM(CHERCHE("recruteuse";Feuil2!$C$6:$C$158))));LIGNE(Feuil2!$A$6:$A$158)-5);LIGNE()-2));"")
On recherche donc avec la fonction index() dans la feuil2 la plage $A$6:$A$158.
puis on utilise la fonction petite.valeur avec des critères
SI((Feuil2!$A$6:$A$158>=Feuil1!$B$1)*(Feuil2!$A$6:$A$158<=Feuil1!$D$1)*(Feuil2!$C$6:$C$158<>"")*(NON(ESTNUM(CHERCHE("recruteuse";Feuil2!$C$6:$C$158))))
suite à ces critères on demande de retourner le N° de ligne pour avoir la bonne valeur de l'index
LIGNE(Feuil2!$A$6:$A$158)-5
soit de la ligne 6 à la ligne 158
le "-5" est pour débuter à 1 et non à 6 car les données sur le feuil2 débutent en "A6"
(ligne 6 ) - 5 = 1
(ligne 7) -5 = 2
etc..
avec petite.valeur(), on doit donner la position de la petite valeur à retourner suivant les critères retenus.

la formule est en "A3" donc avec ligne()-2 on retourne la première petite valeur.
Quand tu vas recopier vers le bas exemple en "A4" ligne()-2 sera le seconde petite valeur etc..

J'espère que cela est plus clair pour toi.

JHA
Merci pour votre réponse, j'ai cherché à l'adapter à mon tableur mais je n'y arrive toujours pas... :( Quand j'essaye de l'adapter en mettant -134 au lieu de -2, il me met un mauvais emploi. Je suis un peu perdu...C$4$sur la feuille 1 correspond à 01/01/2020 et D$4$ correspond au 31/12/2020

Vous trouverez ci-joint les captures d'écran...
Merci pour votre réponse
 

Pièces jointes

  • Forum.png
    Forum.png
    158.3 KB · Affichages: 19
  • Forum registre du personnel.png
    Forum registre du personnel.png
    165.5 KB · Affichages: 16

Flozou

XLDnaute Nouveau
Bonjour à tous,

Sur des images difficile de t'aider.

Pourquoi -134?

Tu dois toujours laisser ligne()-2 pour la première petite valeur
puis copier la formule vers le bas.

JHA
Merci pour votre réponse,

Je pensais que c'était par rapport à la cellule A3 (sur le fichier envoyé précédemment) , comme je dois le transposer sur une cellule A135 sur un nouveau fichier je pensais que ça aurait du sens...
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87