2016-12-21 1 views
0

Ich habe einen Bericht, wo ich Daten für verschiedene Stundenblöcke des Tages zwischen ausgegebenen Datum und Datum des Abschlussdatums sammeln sollte. zB IssueDateTime = 19.12.2016 10:00 Uhr und CompletedDateTime = 19.12.2016 15:00 Ich würde erwarten, dass die Formel um 10:00 Uhr, 11:00 Uhr, 12:00 Uhr, 13:00 Uhr zurückkehrt , 2:00 PM, 3:00 PM. Ich weiß nicht, ob das überhaupt möglich ist, aber jede Einsicht wird sehr geschätzt.So finden Sie Stunden des Tages zwischen zwei Datum Zeiten Excel oder MS-Zugang

+0

Erwarten Sie die Zeit oder die Zeitdifferenz? Ich schätze, das ist was du brauchst, die Formel 'ZEIT (STUNDE (C2), MINUTE (C2), ZWEITE (C2))'. Sehen Sie dies - http://excelsemipro.com/2012/10/extract-time-from-a-date-time-number-in-excel/ –

+0

ich erwarte beide in diesen Fällen, da der Unterschied zwischen dem Beispiel 5 Stunden ist Ich brauche die out Put um 1 Stunde Intervalle voneinander zu sein, bis es das vollständige Datum erreicht – user3667159

+0

Danke für den Link, aber ich habe Angst, es bietet mir nicht, was ich suche nach – user3667159

Antwort

0

Hier ist, wie die gleiche Sache mit VBA/Zugang zu tun:

cdate(DatePart("h",Now())& ":00") 

Diese 13.00.00 aktuelle Zeit hier zurück (13.12)

DatePart("h",Now()) 

Hier ist einfache Funktion, die alle Stunde zurück:

Um nur Stunde selbst, Nutzung zu erhalten Blöcke zwischen zwei verschiedenen Zeiten:

Public Function ShowHourBlocks(StartTime As Date, EndTime As Date) As String 

    Dim StartBlock As Date 
    Dim EndBlock As Date 
    Dim Answer As String 

    StartBlock = CDate(DatePart("h", StartTime) & ":00") 
    EndBlock = CDate(DatePart("h", EndTime) & ":00") 

    Do While StartBlock <= EndBlock 

     Answer = Answer + Format(StartBlock, "h:mm AMPM") & " " 
     StartBlock = DateAdd("h", 1, StartBlock) 

    Loop 


    ShowHourBlocks = Answer 

End Function 

Hier ist, was zurückgibt, wenn Sie es in unmittelbarer Fenster ausführen:

?ShowHourBlocks(now(), DateAdd("h",4,Now())) 
1:00 PM 2:00 PM 3:00 PM 4:00 PM 5:00 PM 
+0

Diese Lösung funktioniert nur, wenn Sie ein Datum Zeit Feld nicht zwei verwenden – user3667159

+0

was meinst du ein Datum Zeit?Du platzierst die Start- und Endzeit in Klammern, wenn du die Funktion mit einem Komma dazwischen anrufst, genau wie im Beispiel (Startzeit = jetzt() und Endzeit = jetzt + 5 Stunden). – Velid

+0

dies funktioniert mit Now-Funktion, aber ich habe Probleme, wenn ich die tatsächlichen Datum Zeit Felder hinzufügen. könnte dabei helfen? – user3667159

0

Diese Formel ein Array der Stunden wird zurückkehren:

=TEXT(ROW(INDIRECT(HOUR(IssueDateTime) & ":" & HOUR(CompletedDateTime)))/24,"hh:mm AM/PM") 

Für Ihr Beispiel die Formel liefert:

{"10:00 AM";"11:00 AM";"12:00 PM";"01:00 PM";"02:00 PM";"03:00 PM"} 

aber wenn sie in eine einzelne Zelle eingegeben haben, wird nur die erste sehen Element.

Sie können das vollständige Ergebnis anzeigen, indem Sie entweder die Formel als Array eingeben oder die Funktion INDEX verwenden.

Wenn Sie nicht vertraut mit Arrays in Excel sind, schlage ich die Hilfethemen in Excel zu lesen und auf MSDN und auch Chip Pearsons Introduction to Array Formulas

Hier ist ein Beispiel sehen. Die Matrixformel wurde in B4: B17 eingegeben, und Bedingte Formatierung wurde verwendet, um die #N/A Ergebnisse leer erscheinen zu lassen.

enter image description here

+0

Ich habe versucht, mit dieser Formel als Array und nur eine normale Formel, aber ich bekomme immer die #Value! -Fehler, irgendwelche Ideen, warum dies passieren könnte? – user3667159

+0

@ user3667159 Nicht wirklich. Offensichtlich machst du etwas Unerwartetes, aber da du nicht angibt, was du machst, ist deine Frage zu breit, um in diesem Format beantwortet zu werden. Die Formel funktioniert hier. Ich bearbeite meine Antwort, um sie zu zeigen. –

Verwandte Themen