2017-02-07 4 views
0

Gibt es eine Möglichkeit, die Anzahl der Tage innerhalb eines Bereichs für ein bestimmtes Jahr zu berechnen?Wie berechnet man die Summe der Tage innerhalb der Reichweite über mehrere Jahre hinweg?

Zum Beispiel, (meine Spalten sind Mitarbeiter, Startdatum, Enddatum, Spalten DK = Jahre 2009-2016), wenn mein Startdatum ist 1/5/2008, und mein Enddatum ist 6/9/2011, ich möchte wissen, wie viele Tage in diesen Jahren zwischen 2008, 2009, 2010 und 2011 verstrichen sind.

Ich habe das versucht folgenden

=IF(ISNUMBER(SEARCH(D$1,$B2))=TRUE,(DATEDIF($B2,$C2,"d"))/30,0)

aber das gibt nur die Summe der Tage innerhalb des Bereichs für das früheste Jahr und nicht die Anzahl der Tage in den folgenden Jahren verteilen, wenn der Bereich erstreckt sich über mehrere Jahre.

+1

Warum nicht 'B2 - B1' verwenden? – VHS

Antwort

1

Die Standardformel für die Überlappung zwischen zwei Datumsbereiche bekommen ist

=MAX(MIN(end1,end2)-MAX(start1,start2)+1,0) 

See this reference for example

so ist es für Ihren Fall an, in der die Jahre gegeben

=MAX(MIN($C2,DATE(D$1,12,31))-MAX($B2,DATE(D$1,1,1))+1,0) 

enter image description here

+0

Müssen diese Spalten in irgendeinem bestimmten Format sein? Diese Formel ist für mich sinnvoll und meine Daten sind genau so aufgebaut wie hier, aber wenn ich die Formel anwende, gibt sie "365" für alle Jahre für 2009-2015 und "366" für 2016 zurück – user4100980

+0

Ja das Startdatum und Enddatum müssen korrekt als Datum formatiert sein - ich habe versucht, sie als Text einzufügen und Sie erhalten die Anzahl der Tage in jedem Jahr, wie Sie sagen - das liegt daran, dass der Textwert von den MIN- und MAX-Funktionen ignoriert wird. Bin gerade mit zB verlassen 31/12/2016-1/1/2016 + 1 = 366 für 2016. –

0

Warum durch 30 dividieren?

= DATEDIF (B2, C2, "d") funktioniert für mich.

enter image description here

Dies sollte man ... Es braucht Arbeit, sondern bauen auf diese und Sie sollten auf Ihrem Weg gestartet werden.

enter image description here

=IF($B$2<DATE(D1,1,1), IF($C$2>DATE(D1,12,31), DATEDIF(DATE(D1,1,1),DATE(D1,12,31), "d"), DATEDIF(DATE(D1,1,1),$C$2,"d")),DATEDIF($B$2,DATE(D1,12,31),"d")) 
+0

Ich möchte eigentlich die Anzahl der Monate, aber wenn das Startdatum ist 1/10/11 und das Enddatum ist 4/7/11, zum Beispiel würde die Verwendung von "m" nur "2" zurückgeben, obwohl es näher bei 3 ist Monate – user4100980

+0

Wie wäre es mit dem Versuch, einen zusätzlichen Monat zu erzwingen ... = IF (MOD (DATEDIF (B2, C2, "d"), 30)> = 15, DATEDIF (B2, C2, "m") + 1, DATEDIF (B2, C2, "m")) – manderson

+0

Das Problem ist wirklich, dass ich wissen muss, wie viele Tage in diesem Bereich für jedes Jahr enthalten sind. Die insgesamt 1251 Tage sind also nicht das, wonach ich suche - ich möchte wissen, wie viele dieser Tage in 2008, 2009, 2010 und 2011 waren. – user4100980

Verwandte Themen