Rechercher une valeur dans Excel

Résolu/Fermé
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 - Modifié par MarieLinternaute le 25/05/2016 à 12:19
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 - 2 juil. 2010 à 13:40
Salut,

j'ai fait un tableau avec des fêtes. pour chaque fête, j'ai mis leur date sur plusieurs années.
j'aimerais qu'en bout de ligne, pour chaque fête, obtenir la date à laquelle la fête se passera en prenant sur une année "flottante".
j'ai mis un tableau avec les résultats que ça devrait donner pour que vous puissiez mieux comprendre :
http://www.cijoint.fr/cjlink.php?file=cj201006/cijMqjmTH5.xls

Pâques étant déjà passé cette année, la date que ça devrait indiquer est donc celle de l'année prochaine.
idem pour la fête des mères.
pour la fête des pères, en revanche, comme c'est aujourd'hui, ça doit encore me donner la date de cette année. et demain, ça devrait me donner la date de la fête des pères de l'année prochaine.

je sais que je pourrais obtenir le résultat escompté en procédant d'autres manière (avec une macro ou en décomposant sur autant de cellules que de dates). mais j'aimerais si possible arriver à le faire en une seule formule par fête.
si la seule solution est de faire des SI imbriqués, je saurais faire aussi alors.

en espérant avoir été suffisamment clair...! ^^
et en espérant bien qu'une solution existe...! ^^
merci pour votre aide.
Comme l'a dit le grand philosophe Mick Jagger : "Tu ne peux pas toujours avoir ce que tu veux"
Help me to help you!
A voir également:

8 réponses

tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
30 juin 2010 à 15:25
Salut,

j'ai une question Mike concernant ton fichier.
dans le calcul de la fête des Mères, tu utilises ANNEE(("01/05/"&G1)*1). pourquoi ne pas faire plus simplement référence à la case contenant l'année en cours? ça en revient au même ou y a-t-il une subtilité qui m'échappe?!
dans le même genre, tu utilises MOIS(("01/05/"&G1)*1)+1. pourquoi ne pas mettre plus simplement 6, pour le mois de juin. ou là encore quelque chose m'échappe?!
merci pour tes éclaircissements.

P.S. : même avec les calculs fournis sur Wikipédia, je ne comprends pas la formule pour calculer Pâques. déjà, elle est différente de celles sur Wiki. elle parait plus simple, tant mieux remarque! perso, je préfère le 1er janvier, Noël ou encore la Saint Valentin. ça pose moins de problème! lol
si vous avez plus d'explications là-dessus, je suis preneur. sinon je laisse tomber définitivement, je la garde sans la comprendre (tant pis!) et j'arrête de vous embêter avec. ^^
1
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
30 juin 2010 à 16:34
il y a aussi pour le calcul de la fête des pères : -JOUR(("01/06/"&B1)*1)+8
on pourrait pas le remplacer par +7?
et remplacer -JOUR(("01/06/"&B1)*1)+7 par +6?
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 823
20 juin 2010 à 16:18
bonjour,

Spécifiquement dans ton tableau cela donne cela :

=PETITE.VALEUR(B2:J2;NBVAL(B2:J2)-NB.SI(B2:J2;">="&AUJOURDHUI())+1)

pour Pâques.
mais je me permets de t'envoyer par là pour des histoires de jours fériés.. :
http://boisgontierjacques.free.fr/pages_site/dates.htm#JF
(et plus"haut" pour des dates en générales....)
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
20 juin 2010 à 20:14
Salut dobo69,

la formule marche nickel et je l'ai comprise. ^^
par contre, je ne comprends pas la formule pour calculer le jour de Pâques dans le lien donné? elle sort d'où cette formule?! dans l'idéal, c'est ce que j'aurais aimé avoir!
des formules existent aussi pour calculer les fêtes des mères et pères?
merci
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 823
20 juin 2010 à 21:41
La formule pour calculer le jour de Pâques n'a pas grand chose à voir avec excel...
C'est un truc qui remonte aux confins de l'antiquité et du haut moyen age :
Pâques  est célébré le dimanche qui suit le quatorzième jour de la lune qui atteint cet âge au 21 mars ou immédiatement après. Autrement dit, c'est le premier dimanche qui suit la première pleine lune le 21 mars ou après (marquant le début du printemps)
ne t'inquiètes pas : je ne ressors pas ca d'un vieux souvenir d'un éventuel catéchisme.. :
https://fr.wikipedia.org/wiki/Calcul_de_la_date_de_P%C3%A2ques il y a la "formule"
Quand à la fete des meres (Google est ton ami..) :
Il est fixé au dernier dimanche du mois de Mai à la condition que ce dernier ne coïncide pas avec le week-end de pentecôte. Auquel cas on repousse d'une semaine, au week-end suivant. En pratique cela signifie que la date peut varier d'une quinzaine de jours entre le 25 mai et le 7 juin.
Bref tu peux bien t'amuser avec tout ca si tu veux...
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
21 juin 2010 à 11:17
d'ac, je vais regarder tout ça et essayer de comprendre les formules.
si j'y arrive je ferais aussi celle pour la fête des mères et des pères.
merci encore.
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
22 juin 2010 à 13:23
bon ben je vais laisser tomber parce que je ne comprends pas cette satanée formule!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 23/06/2010 à 11:32
Dommage de laisser tomber Thibouuu, ce nest pas ton genre.
allez, je t'explique:
=PETITE.VALEUR(B2:J2;NBVAL(B2:J2)-NB.SI(B2:J2;">="&AUJOURDHUI())+1)
PETITE.VALEUR(CHAMP;RANG) ressort la plus petite valeur du champ qui correspond au rang demandé à partir de la plus petite (PETITE.VALEUR(A:A;1) ressort la plus petite ;2 celle juste au dessus... etc...
pour définir ce rang, Dobo utilise:
NBVAL(CHAMP) qui compte toutes les valeurs du champ, dont il déduit avec NB.SI(B2:J2;">="&AUJOURDHUI()+1) toutes les valeurs antérieures à celle que tu cherches, le +1 servant à inclure la date limite dans le calcul (donc en fait toutes les dates antèrieures à demain)
Ainsi il obtient le rang de la date que tu cherches.
le>= est entre guillemets car curieusement, les formules NB.SI / SOMME.SI / SOMME.SI.ENSEMBLE ne traitent les comparaisons > ou < que si elles sont entre guillemets.
Alors que le code SI ne le nécessite pas...Les mystères d'excel ou les conséquence de la présence nécessaire d'un point virgule entre le champ et le signe dans ce type de formule
crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 juin 2010 à 16:32
Bonjour Thibouuuh
quelque chose comme ça peut $être
http://www.cijoint.fr/cjlink.php?file=cj201006/cijzEssuFG.xls
Crdlmnt
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
20 juin 2010 à 20:24
Salut Vaucluse,

toujours là pour mes problèmes sur Excel! lol ^^
là aussi, la formule marche nickel et je l'ai comprise! ^^
merci encore une fois.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 juin 2010 à 20:35
Ok mais je pense que c elle de Dobo est plus simple, donc meilleure. Tu devrais y jeter un oeil.
bien amicalement
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
21 juin 2010 à 11:19
oui je l'ai déjà regardé. je n'ai que l'embarras du choix.
merci encore
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
23 juin 2010 à 15:11
Salut tout le monde,

Je pensais que cette discussion était terminée

un fichier avec deux feuilles sur ces fêtes mobiles conditionnées par le jour de Pâques

https://www.cjoint.com/?gxpk14qt6M
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
24 juin 2010 à 09:14
Salut Mike,

merci pour le fichier. je vais regarder tout ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
30 juin 2010 à 17:38
ANNEE(("01/05/"&G1)*1). Pourquoi ne pas faire plus simplement référence à la case contenant l'année en cours
Rép, tout simplement pour utiliser le fichier dans le temps je ne rentre que l'année en B1 et à partir de là, j'initialise EX. le mois de mai ANNEE(("01/05/"&G1)*1). le problème est que cette formule "01/05/"&G1 sera considéré comme du texte et pour extraire une valeur numérique EX. l'année il faut la multiplier par 1.

MOIS(("01/05/"&G1)*1)+1. Pourquoi ne pas mettre plus simplement 6, la raison est simple, la Fête des mères est le dernier dimanche de mai. Si ce jour coïncide avec la Pentecôte, la fête est repoussée au premier dimanche de juin.
Dans un premier temps il est logique de comparer la fête des mères et le jour de Pentecôtes s'il tombe le même jour on ajoute au mois de cette date 1 pour passer à juin. Il est vrai que dans la conditionnelle, à la place d'ajouter 1 au mois on aurait pu écrire ("01/06/"&G1)*1
De même pour la fête des pères qui est Troisième dimanche de juin, on calcule le premier dimanche de juin et on ajoute 14 pour avoir le troisième

JOUR(("01/06/"&B1)*1)+8 pourquoi +8 et non +7 c'est le principe des intervalles effectivement on aurai pu écrire JOUR(("01/06/"&B1)*1)+7+1

les fêtes mobiles sont de variables casse tête et souvent conditionnées par Pâques, après avec des formules plus ou moins complexe on arrive à déterminer toutes ces fêtes liées.
Pour déterminées ce jour de Pâques plusieurs formules sont possibles, mais le résultat n'est pas garantie à 100 pour 100, ex. les années qui poseront problème sont 2049 2076 et 2079 ou aucune formule simple ne permettent de déterminer avec précision ce jour.

Avec des formules aussi complexe, il est possible qu'une erreur de formule m'ait échappée, je recontrôlerait
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
30 juin 2010 à 18:14
re,

ANNEE(("01/05/"&B1)*1) donne bien toujours l'année de B1, donc 2010. ce que je voulais faire c'était remplacer ce terme entier du calcul par une référence à une case dans laquelle serait rentré l'année en cours, grâce à la formule : annee(aujourdhui())

pour le mois, c'est pareil : MOIS(("01/05/"&B1)*1)+1 va toujours donner 5+1, donc 6 comme résultat. et ce quelque soit la date entrée en B1.

pour le jour, c'était remplacer le tout que je voulais dire.
-JOUR(("01/06/"&B1)*1)+8 va donner -1+8, donc +7
idem avec l'autre : -JOUR(("01/06/"&B1)*1)+7 va donner -1+7, donc +6
et pour ces 2 dernières formules, toujours indépendant de la date entrée en B1.

c'est pour cela que je me dis, sauf erreur de ma part, qu'il serait possible de les simplifier pour alléger les formules.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 30/06/2010 à 21:53
sans avoir à changer tes formules, tu peux en B1 coller cette formule, mais le fichier précédent permettait d'avoir les dates de différentes fêtes en saisissant simplement l'année en B1 de sorte que si tu saisissais 2011 tu avais les dates de l'année. A la limite créer une liste déroulante mais bon

=ANNEE(AUJOURDHUI())

pour remplacer MOIS(("01/05/"&B1)*1)+1 à la limite tu pourrais écrire (pas certain que ce soit la solution)
=MOIS(("01/06/"&ANNEE(AUJOURDHUI())))

plus difficile pour les jours
parce qu'ici par exemple on veut le 1 juin de l'année +7 ou 8 jours
JOUR(("01/06/"&B1)*1)+7
il faudrait écrire
=JOUR(("01/06/"&ANNEE(AUJOURDHUI()))+7)

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
2 juil. 2010 à 13:40
Salut,

j'ai l'impression qu'on ne se comprend pas, mais c'est pas grave. ^^
j'ai fait quelques changements qui ont l'air de bien fonctionner. je verrais avec le temps si ça marche effectivement correctement.

merci encore pour votre aide à tous.
bon week-end ;-)
0