Calculer le nombre de jours d'une plage de dates se produire entre deux dates
J'ai une feuille de données qui contient une liste de début et date de fin d'une tâche. J'ai besoin de calculer le nombre de jours entre la date de début et date de fin font partie de notre pause de Noël (11 décembre au 7 janvier)
Ainsi, par exemple,lorsque la date de début est 10/12/2012 et la date de fin est 12/01/2013, 28 de jours entre ces deux dates. lorsque la date de début du 15/12/2012 et la date de fin est 12/03/2013, puis de 22 jours de jours entre ces deux dates. Si la date de début du 10/12/2012 et la date de fin est 12/01/2014, 56 de jours entre ces deux dates (car il y a deux ans de la gamme).
J'ai besoin de faire cela avec une formule en raison des exigences que j'ai été créé.
Au départ, j'ai décidé d'utiliser le nombre de fois que le Jour de Noël (25 décembre) se produit et simplement calculer 4 semaines par événement.
La formule que j'ai utilisé était
=FLOOR((E12-A25)/365,1)+IF(OR(MONTH(E12)=12,
MONTH(A25)=12),
IF(AND(DAY(A25)<=25,DAY(E12)>=25),1,0),
IF(OR(MONTH(A25)>=12,
IF(MONTH(E12)<MONTH(A25),
MONTH(E12)+12,
MONTH(E12))>=12),1,0))*28
Mais évidemment, cela n'aide pas si la plage de début et date de fin se situe entre ces deux dates.
Des suggestions? Je suis dans une impasse
- quel est le problème ? est prise en 56 jours entre 10/12/2012 et 12/01/2014 un problème?
- Non, c'est la réponse correcte à obtenir. Le problème est que la formule actuelle ne parvient pas à calculer correctement. La formule ne vérifie pour voir si le 25 décembre qui se passe entre les deux dates. Si la série est 11/12/2012 à 23/12/2012, il serait de retour 0. Il doit retourner 12.
Vous devez vous connecter pour publier un commentaire.
Votre date de mathématiques sur le deuxième exemple est mal-il y a 24 jours dans cette gamme, pas 22.
Je me permet de vous y un période de vacances:
LAISSER:
FORMULE:
La formule trouve essentiellement le chevauchement de la plage de dates, si il y en a un, et soustrait pour obtenir le nombre de jours entiers. Le "+1" c'est parce que votre "date de fin" sont en fait compris, donc pour la date de maths que vous devez avoir les vacances se terminant le 8 Jan, pas 7 Jan, pour capturer le dernier jour.
Mais cela ne fonctionne que pour une seule année de vacances. Vous pouvez stocker les vacances plages dans d'autres cellules et utiliser la même formule et ajoutez tous, mais vous serez limité par le nombre d'années que vous avez configuré.
=IF(AND(B1>=A1,B1<=A2),28,MAX(MIN(A2+1,B2+1),A1) - MIN(MAX(A1,B1),A2+1))
lorsque j'ai réalisé que si la date de début est tombé à l'intérieur de cette période, j'ai eu besoin de se déplacer à tout remettre en 28 jours, peu importe. Pensait que j'allais quitter ce ici pour quelqu'un d'autre qui se coince dans la même manière (ou d'être corrigé si j'ai eu l'idée de mal nouveau) 🙂Cette formule compter des dates entre le 11 décembre et le 7 janvier inclus au sein de tout plage de dates, même sur plusieurs années
=SUMPRODUCT((TEXT(ROW(INDIRECT(B1&":"&B2)),"mmdd")+0>=1211)+(TEXT(ROW(INDIRECT(B1&":"&B2)),"mmdd")+0<=107))
où la date de votre départ est dans la B1 et la date de fin de B2
Ce convertit toutes les dates de la plage à un chiffre , par exemple, 1er Déc devient 1201, 4 Mars devient 304, puis il compte de ces dates qui sont soit supérieure ou égale à 1207 (7 décembre) ou plus petit que ou égal à 107 (7 janvier), de sorte que donnera 56 pour votre dernier exemple
Vous pouvez raccourcir la formule si vous soustraire 7 de chaque jour (en fonction le 7 janvier comme date de fin), alors vous avez seulement besoin de vérifier que la résultante des numéros sont >= 1204, c'est à dire
=SUMPRODUCT((TEXT(ROW(INDIRECT(B1-7&":"&B2-7)),"mmdd")+0>=1204)+0)
.....et une troisième option qui devrait aussi donner le même résultat, plus proche de richardtallent de l'approche - obtient le nombre d'années et multiplie par 28, puis ajuste les chiffres sont basés sur le début/date de fin
=(YEAR(B1-7)-YEAR(B2-7)+1)*28-MAX(0,B2-DATE(YEAR(B2-7),12,11))-MIN(28,DATE(YEAR(B1-7)+1,1,7)-B1)