Recherche d'une date dans une liste

pdemaret

XLDnaute Nouveau
Bonjour à tous

Je suis en train de sécher sur un problème de recherche de date.
Voilà j'ai une colonne dans laquelle se trouve des dates strictement croissantes.
Je voudrais, dans la cellule de la colonne à côté, afficher la première date (dans la liste) de l'année correspondante à la date de la ligne.
Bref rien de tel qu'un exemple :
1. 01/12/2008 21/11/2008
2. 15/12/2008 21/11/2008
2. 05/01/2009 05/01/2009
3. 12/01/2009 05/01/2009
...
22. 04/05/2009 05/01/2009

Dans le ficghier que je fourni, j'y ai mis 4 tests :

Test 1 : =RECHERCHEV(DATE(ANNEE(A6);1;1);A$3:A$23;1)
--> fourni la dernière date de l'année précédente et donc pour les lignes 1. et 2. j'obtiens #N/A

Test 2 : =INDEX(A$3:A$22;EQUIV(DATE(ANNEE(A6);1;1);A$3:A$22;1))
--> même résultat

Test 3 : =RECHERCHEV(ANNEE(A6);ANNEE(A$3:A$22);1)
--> #N/A
Je me suis dit que je vais rechercher que l'année et donc forcément il trouvera la première date de l'année.
Mais pour cela je dois écrire une formule que excel n'aime pas ANNEE(range de cellule)

Test 4 : =INDEX(A$3:A$22;EQUIV(ANNEE(A6);ANNEE(A$3:A$22);1))
--> #N/A
Même réflexion, même erreur

Qu'en pensez-vous ?

Merci

P
ps: comment çà se fait que le forum n'accepte pas les fichier .xlsx ?
 

Pièces jointes

  • Test date.xls
    21.5 KB · Affichages: 198
  • Test date.xls
    21.5 KB · Affichages: 145
  • Test date.xls
    21.5 KB · Affichages: 188

CISCO

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

Bonsoir

Si j'ai bien compris ta demande, voici une possibilité en pièce jointe.

@ plus
 

Pièces jointes

  • Test date(1).xls
    21 KB · Affichages: 1 478
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Recherche d'une date dans une liste

Bonsoir Pdemaret, Cisco, bonsoir le forum,

Je suis mort de rire car je bataille depuis pas mal de temps pour trouver une solution VBA. J'ai quand même trouvé mais c'est tellement "usine à gaz" et la solution de Cisco est tellement simple que je me dis qu'il faudra bien que je me mette aux formules un jour ou l'autre...

Bon j'envoie quand même pour le "sad" (je voulais dire pour le fun mais à ce stade là...) mais bien évidemment tu ne retiendras pas parce dans la série "pourquoi faire simple quand on peut faire compliqué..."
 

Pièces jointes

  • pdemaret_v01.xls
    48 KB · Affichages: 378

pdemaret

XLDnaute Nouveau
Re : Recherche d'une date dans une liste

Je te remercie Cisco
Je vais d'abord comprendre la chose et ensuite je reviendrai, car il y a déjà qqch que je ne saisis pas.

Robert, merci à toi.
Je regarderai ta solution ensuite


Ce forum est extraordinaire.
 

CISCO

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

ps: comment çà se fait que le forum n'accepte pas les fichier .xlsx ?

Si tu offres excel 2007 à tous les internautes passant sur ce forum... :D:D

Aller, plus sérieusement. Je ne sais si ma formule te donne les résultats attendus. Si tu veux plus d'info, poses des questions, ou fait "formules" --> "évaluation de formule"...

@ plus

@ plus
 
Dernière édition:

pdemaret

XLDnaute Nouveau
Re : Recherche d'une date dans une liste

CISCO, me revoilà.
Et là je me retrouve devant d'autres questions.

1. Tu utilises un principe que je ne connais pas :
{=MIN(SI(ANNEE(A7)=ANNEE(A$3:A$22);A$3:A$22))}

Qu'est-ce que c'est que ces formules entourées de caractères {} ?
De plus ces derniers disparaissent quand on clique sur la formule pour l'éditer, pourquoi ?


2. La même formule sans {} ne donne pas le même résultat
pourquoi ?


3 Plus précisément, SI(ANNEE(An)=ANNEE(A$3:A$22);...), (où n est l'occurence de chaque ligne où se trouve la formule)
doit toujours donner vrai


Bref à toi la parole stp

Merci
 

JeanMarie

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

Bonsoir pdemaret, CISCO, sabzzz, Robert

Une autre proposition, sans formule matricielle
Code:
=INDEX(A:A;2+EQUIV(1;FREQUENCE(DATE(ANNEE(A3);1;1);A:A);0);1)
Les données de la colonne A n'ont pas besoin d'être triées.

@+Jean-Marie
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

Bonsoir pdemaret, CISCO, sabzzz, Robert

Une autre proposition, sans formule matricielle

@+Jean-Marie

Oui, et non : D'après l'aide d'excel "La fonction FREQUENCE est tapée sous forme matricielle après que vous ayez sélectionné la plage de cellules adjacentes dans laquelle vous voulez faire apparaître la distribution renvoyée".... D'une certaine manière, c'est automatiquement fait, un peu comme pour SOMMEPROD.

@ plus
 

JeanMarie

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

Re...

J'aurais dû mettre sans validation par les 3 touches.

Il y a quand même de grosses différences entre SOMMEPROD et FREQUENCE

FREQUENCE, ne retourne pas qu'une seule valeur, elle accepte des plages entières.

@+Jean-Marie
 

CISCO

XLDnaute Barbatruc
Re : Recherche d'une date dans une liste

CISCO, me revoilà.

{=MIN(SI(ANNEE(A7)=ANNEE(A$3:A$22);A$3:A$22))}

Qu'est-ce que c'est que ces formules entourées de caractères {} ?

Merci

La formule de base est la suivante :
=SI(ANNEE(A7)=ANNEE(A3);A3)

autrement dit, si l'année de A7 est égale à l'année de A3, conserver A3, sinon faux.

Mais on veut faire ce test sur toutes les valeurs de la colonne A, donc on recommence :
=SI(ANNEE(A7)=ANNEE(A4);A4)
puis
=SI(ANNEE(A7)=ANNEE(A5);A5)
puis
=SI(ANNEE(A7)=ANNEE(A6);A6)

jusqu'à la dernière valeur de la colonne A. Et on obtient une liste de valeurs. Mais on veut ne conserver que le min de toutes ces valeurs...

Tout cela est fait en une seule formule en écrivant

=MIN(SI(ANNEE(A7)=ANNEE(A$3:A$22);A$3:A$22))

mais excel ne fait dans ce cas que le calcul par rapport à A3. Cette formule est donc équivalente à
=MIN(SI(ANNEE(A7)=ANNEE(A3);A3))

Pour qu'excel fasse le calcul avec toutes les valeurs de la colonne A (et pas uniquement avec A3), il faut écrire cette avant dernière formule sous la forme
{=MIN(SI(ANNEE(A7)=ANNEE(A$3:A$22);A$3:A$22))}

obtenu grace à ctrl+maj+ entrée.

Autrement dit, le fait de mettre {} permet de faire un calcul matriciel. Ici la matrice est composée de toutes les valeurs de la plage A3:A22.

@ plus
 

Pièces jointes

  • Test date(1)(1).xls
    29 KB · Affichages: 254

Discussions similaires

Réponses
0
Affichages
141
Réponses
2
Affichages
486

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG