Renvoi d'un numéro de colonne entre deux date [Résolu/Fermé]

Signaler
-
 Ménestrelle -
Bonjour,

Je dispose de deux tableaux dans deux onglets différents.

Le premier est de la forme :

Numéro colonne --- 1 ----------------- 2 ----------------- 3
Date début --------- 15/05/2011 ---- 16/06/2011 --- 16/06/2012
Date fin ------------- 15/06/2011 ---- 15/06/2012 ---- (pas de fin)

Le second est de la forme

Date ------------- Numéro de colonne
17/05/2011 ---- ?
22/06/2011 ---- ?
15/02/2012 ---- ?

Dans ce second tableau, je cherche à mettre une formule (à la place du ?) qui me renvoie le numéro de colonne de la date. Par exemple, pour la première date, 1, les deuxième et troisième dates, 2, et ainsi de suite.

Merci pour votre réponse.

Cordialement.

8 réponses

Messages postés
329
Date d'inscription
jeudi 7 juin 2012
Statut
Membre
Dernière intervention
29 mai 2014
55
sa manque de détails
J'ai une date qui se situe entre deux dates, et je souhaite savoir le numéro de colonne de cette première date, selon l'autre tableau.

Merci.
Bonjour,

Je cherche à le faire autrement que par des fonctions SI imbriquées.

Merci
Messages postés
52335
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
27 septembre 2020
14 139
Tu veux faire des comparaisons et examiner plusieurs possibilités.
C'est précisément la fonction SI qui est la seule à pouvoir faire cela ...

Mais comme je tiens à te faire plaisir, je triche un peu en reprenant la formule normale (contenant des SI) et je la modifie en utilisant les fonctions booléennes VRAI et FAUX ; mais ce sera peut-être plus difficile de mettre à jour et d'adapter une telle formule !
=ET(Feuil1!B$2<A2;A2<Feuil1!B$3)*1 + ET(Feuil1!C$2<A2;A2<Feuil1!C$3)*2 + ET(Feuil1!D$2<A2;A2<Feuil1!D$3)*3
Pour qu'elle fonctionne bien, il faut mettre une date dans la dernière cellule ; alors saisis 31/12/2020 en D3 ; tu pourras toujours en changer après ...
https://www.cjoint.com/?BFAtamlRB7d

... ça te convient ?

Bonjour,

Merci beaucoup pour votre réponse.

En ce qui concerne la dernière date de fin, j'avais décidé d'utiliser la fonction aujourdhui(), c'est ce qui me semblait le plus pertinent et cela évolue (il me semble) chaque jour.

Je trouve votre formule très ingénieuse. Cependant, de nouvelles colonnes devraient voir le jour très bientôt, et c'est en cela que mes fonctions SI imbriquées me posaient problème. En effet, il faudra rajouter à la main une nouvelle fonction SI dans la "valeur si faux" de la dernière. C'est pourquoi, j'aurais aimé qu'Excel me renvoie son numéro de colonne (au lieu de me renvoyer le numéro que j'ai rentré), mais cela semble encore plus délicat.

Je m'empresserai d'essayer votre solution demain.

Bien à vous.
Messages postés
52335
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
27 septembre 2020
14 139
Ménestrelle,

l'usage dans ce forum est de se tutoyer, sans tenir compte du sexe, de l'âge, de la condition sociale, des choix philosophiques ou religieux, de la race ou de la nationalité.
Généralement le vouvoiement est réservé aux altercations (eh oui, ça arrive aussi !).

On peut effectivement demander à excel de chercher dans quelle colonne on se trouve au lieu d'en écrire le N° ; mais dans ton exemple cela ne fera qu'allonger la formule :
=ET(Feuil1!B$2<A2;A2<Feuil1!B$3)*COLONNE()+1 + ET(Feuil1!C$2<A2;A2<Feuil1!C$3)*COLONNE()+1 + ET(Feuil1!D$2<A2;A2<Feuil1!D$3)*COLONNE()+1
Messages postés
25318
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
25 septembre 2020
5 494
Bonsoir
il me semble avoir déjà répondu à la même question:

exemple à adapter
de A1 à X1 vos dates début
en A3 la date cherchée
en B3 la formule:
=SI($A3="";"";EQUIV($A3;$A$1:$X$1))
vous donnera le N° de colonne du champ indiqué en gras dans laformule de la date inférieure la plus proche en ligne 1 si vos dates de A2 à X sont classées par ordre croissant, ce qui semble être le cas.


crdlmnt

Bonjour,

Merci à tous les deux pour vos solutions (très efficaces), j'ai fait un grand pas vers l'automatisation de mon fichier.

Cordialement.