2016-12-28 5 views
0

J'ai la formule suivante mis en place pour déterminer si l'anniversaire de quelqu'un viendra dans la semaine prochaine.Enveloppe année de Décembre à Janvier

= SI (ET (Q2> (TODAY() + 4), Q2 < (aujourd'hui() + 12)), "Oui", "Non")

* Note: Q2 est l'anniversaire de la personne , mais en l'an 2016. (c.-à-d. 12/20/1978 est en réalité 12/20/2016)

Cela fonctionne, sauf quand j'arriverai à peu près à la mi-décembre car la semaine prochaine débordera dans la prochaine an. Comment puis-je obtenir l'intervalle de la semaine prochaine pour le mois de janvier de l'année suivante (de décembre 2016 à janvier 2017)?

Répondre

1

Vous pouvez mettre la date dans l'année en cours avec une formule comme

=date(2016,month(q2),day(q2)) 

Pour tenir compte du fait que la date et quelques jours peut être l'année prochaine, vous pouvez utiliser

=date(year(today()+ajustment),month(q2),day(q2)) 

Votre formule entière ressemble alors à ceci:

=IF(AND(DATE(YEAR(TODAY()+4),MONTH(Q13),DAY(Q13))>(TODAY()+4),DATE(YEAR(TODAY()+12),MONTH(Q13),DAY(Q13))<(TODAY()+12)),"Yes","No") 

maintenant, la formule fonctionne pour les dates de la nouvelle année, t oo.

+0

Cela me ramène à mon numéro original – anra

+0

J'ai fait quelques modifications après avoir posté ma première formule. Celui-ci fonctionne maintenant à travers les changements de l'année sans aucune modification. – teylyn

+0

JE PENSE QU'IL L'A FAIT! – anra

0

Le problème est que votre solution dépend de l'année, alors que vous ne devriez passer que le mois et le jour. Cela pourrait être accompli en utilisant la fonction TEXT (...).

Par exemple: =VALUE(TEXT(I2,"mm"))

retournera le mois en nombre. Est-ce proche de ce que vous cherchiez?

Voici comment la solution regarderait en utilisant cette approche:

=IF(AND(VALUE(TEXT(G2,"mm"))=VALUE(TEXT(TODAY(),"mm")),VALUE(TEXT(G2,"dd"))>(VALUE(TEXT(TODAY(),"dd"))+1),VALUE(TEXT(G2,"dd"))<(VALUE(TEXT(TODAY(),"dd"))+12)),"Yes","No") 

En outre, cette solution est indépendante d'année, de sorte que vous pouvez utiliser anniversaire réelle de quelqu'un et ne pas avoir à changer l'année à chaque fois.

+0

Pourriez-vous élaborer. Ou mettez-le dans le contexte de la formule que j'ai montrée. Merci! – anra

+0

Le texte ne sera pas très utile lorsque vous essayerez de comparer le nombre de jours d'absence. – teylyn

+0

Bien sûr que ce serait le cas. Vous avez juste à comparer à la fois le mois et les jours pour le rendre efficace. En outre, la conversion en un nombre aide (s'il vous plaît voir la dernière édition). –

3

Vous pouvez utiliser DATEDIF pour obtenir la différence en année, mois ou jours, comme indiqué, entre deux dates. Par exemple:

= DATEDIF ("start_date", "end_date", "d")

= DATEDIF ("11/01/2011", "11/10/2011", "d") Résultat: 9

Scratch:

Q3 = DATEDIF (aujourd'hui, la date d'anniversaire, "d")

= SI (ET (Q3> 4, Q3 < 12), "Oui", » Non ")

Vous pouvez donc utiliser DateDiff dans votre instruction IF pour obtenir une évaluation d'anniversaire dans les prochains jours. Il est à noter que vous n'obtenez pas l'anniversaire de la semaine prochaine avec ce genre de formule, juste pour obtenir ceux dont la date d'anniversaire se produit entre 4 jours d'aujourd'hui et moins de 12 jours à compter d'aujourd'hui.