2017-08-24 1 views
0

J'essaie de faire une formule pour calculer le numéro de semaine dans une semaine, mais avec certains critères. La semaine commence toujours un lundi. Mais si le jeudi de cette semaine est le mois suivant, alors ce numéro de semaine fait partie du mois suivant.Excel: Numéro de semaine dans le mois avec les critères

enter image description here [enter image description ici] [2]

En ce moment, je la formule suivante:

=INTEGER((6+DAY(A4+1-WEEKDAY(A4-1)))/7) where A4 is the date. 

Cela calcule déjà la Semaine n ° au cours du mois, mais pas avec les critères de jeudi. Un critère supplémentaire est que le numéro de semaine devrait commencer à partir de 6h du lundi au lieu de minuit. Mais je peux résoudre avec une colonne supplémentaire pour vérifier cela.

Merci d'avance!

+1

S'il vous plaît une capture d'écran ou un échantillon de données avec un scénario e à répond aux critères de votre question. Mettez le résultat désiré manuellement. Maintenant, en tant que nouvel utilisateur, assurez-vous de bien comprendre ceci: Modifiez votre question pour fournir les détails demandés. N'utilisez pas de commentaires pour cela. Après avoir édité votre question, postez un commentaire et utilisez @teylyn pour m'avertir de vos changements. – teylyn

+0

@teylyn J'ai ajouté une capture d'écran d'un échantillon Excel. Je vous remercie. – Innerv1sion

+0

Je pense que la fonction «EOMONTH» pourrait vous aider. Malheureusement, je ne peux pas vous aider plus atm. –

Répondre

1

Pensez à travailler le numéro de la semaine à partir du numéro de la semaine précédente:

  • Si elle est lundi alors
    • Si jeudi suivant va dans le mois suivant, remis à 1
    • augmentation Else 1
  • utiliser autre même valeur

Donc, en commençant par un 1 à E4

=IF(WEEKDAY(A5)=2,IF(MONTH(A5+3)>MONTH(A5-4),1,E4+1),E4) 

entré dans E5 et copié vers le bas.

enter image description here

EDIT

ci-dessus fonctionne pour 2017, mais aurait besoin léger changement de travailler pour 2018 et les années suivantes, car le mois diminue 12-1 dans la limite de l'année:

=IF(WEEKDAY(A5)=2,IF(MONTH(A5+3)<>MONTH(A5-4),1,E4+1),E4) 
+0

Je suis arrivé à une conclusion similaire @TomSharpe, mais je ne suis jamais arrivé à l'étape si la date a commencé au milieu du mois. Les données d'exemple OP ne couvrent pas ce cas et le PO a laissé la première date en blanc, ce que je suppose devrait être vraiment 4. Bonne réponse et donne exactement la sortie demandée par le PO. –

+0

Merci @Forward Ed, il semble juste plus facile de cette façon. C'est comme si vous deviez travailler à rebours autrement. Mais pour être honnête, je n'ai pas compris comment la formule originale d'OP était si proche d'une solution, peut-être devrais-je le faire ensuite. –

+0

J'ai finalement trouvé une solution pour travailler le numéro de la semaine à partir d'une date. L'idée était de définir un «mois comptable» pour chaque mois calendaire, par ex. pour le mois de janvier 2017, il irait du lundi 2 au dimanche 29, alors ce n'est pas trop difficile d'obtenir le numéro de la semaine mais il a fallu plusieurs colonnes d'aide. –

0

Je ne peux pas uploader un classeur, mais voici une solution:

Row 2 est en-têtes Row 3 est vide B4 descendre est la date (01/01/2017 jusqu'à 31/12/2017)

C4 =WEEKDAY(B4,2)

D4 =VLOOKUP($C4,$L$3:$M$9,2,0)

E4 =MONTH(B4)

F4 à J4 sont vides

F5 =IF(C5=1,F4+1,F4)

G5 =IF(C5=4,11,0)

H5 =IF(MAX(E5:E11)-MIN(E5:E11)<>0,22,0)

I5 =IF(AND(C5=4,SUM(G5:G11)+SUM(H5:H11)>22),I4+1,0)

J5 =IF(H6-H5<0,1,IF(H6=22,J5,IF(OR(C6=1,I6<>0),J5+1,J5)))

L3 à M9 sont vlookups

1 Monday 
2 Tuesday 
3 Wednesday 
4 Thursday 
5 Friday 
6 Saturday 
7 Sunday 

Est-ce que cela fonctionne bien pour vous?

+0

Merci! Je pense que je comprends votre solution, mais la fonction finale dans J5 semble étrange car elle a une référence circulaire? Comment cela fonctionne-t-il alors? – Innerv1sion

+0

Je ne sais pas pourquoi il y aurait une référence circulaire. Avez-vous copié mon code correctement? –

+0

Votre fonction dans la cellule J5 contient J5, donc elle fait référence à elle-même? J5 = IF (H6-H5 <0,1, IF (H6 = 22, J5, IF (OR (C6 = 1, I6 <> 0), J5 + 1, J5))) – Innerv1sion

0

En mon expérience la plupart de ces questions de nombre de semaine peuvent être répondues avec une certaine variation de votre formule originale - dans ce cas cette version devrait répondre à la semaine de lundi commencer avec le Thur sday déterminer le mois

=INT((6+DAY(B4+4-WEEKDAY(B4-1)))/7)

qui travaille pour une date en A4, mais en supposant que vous avez une date/heure en A4 et la semaine ne commence pas avant le lundi 06:00 alors vous pouvez modifier que comme suit :

=INT((6+DAY(B4+3.75-WEEKDAY(B4-1.25)))/7)

enter image description here