Obliczanie różnicy czasu w formacie hh: mm: ss

0

Mam format czasu hh: mm: ss w jednej komórce i ten sam sformatowany czas w innej komórce.

Obliczam różnicę tych dwóch komórek i otrzymuję różnicę hh: mm: 00.

Czego żądam, jeśli ktoś może mi pomóc uzyskać różnicę czasu obliczoną z uwzględnieniem godzin: minut, a także sekund.

Abhinav Tiwari
źródło
Nie jestem pewien, jak to robisz. Wykonałem obliczenia testowe i daje mi to sekundy.
Jerry
Jaki format jest stosowany do komórki wynikowej? Zmień go z powrotem na „Czas” - lub podaj mu format klienta hh:mm:ss...
Peter Albert

Odpowiedzi:

2

Jak obliczasz różnicę?

Jeśli używasz odejmowania w ten sposób w C2

=B2-A2

zakładając późniejszy czas w B2

następnie sformatuj C2 jako hh: mm: ss powinieneś uzyskać prawidłową różnicę, w tym sekundy - zakładam, że oba czasy są tego samego dnia?

barry houdini
źródło
Domyślnie też hh:mm:ss na komórce z formatem „General”, przynajmniej na moim Excelu!
Jerry
Zakładam, że odejmowanie jest obecnie wykonywane z pewną kombinacją GODZINA i MINUTA funkcje, więc format jest OK, ale sekundy zawsze będą równe zero, ponieważ oczywiście HOUR i MINUTE nie uwzględniają tych .....
barry houdini
Ok, dzięki wszystkim ... Naprawdę pomaga zrozumieć, gdzie popełniłem błąd. Twoja dalsza pomoc będzie bardziej doceniana. Próbuję obliczyć różnicę czasu między jednym krokiem a innym krokiem, dlatego kiedy rozpoczynam krok 1 (używam Cntrl + Shift + Colon, który automatycznie daje mi aktualny czas, ale tylko w formacie HH: mm: 00). Sugestia Barry'ego naprawdę pomaga, jeśli hh: mm: ss ma pewną wartość w obszarze „ss”, ale tutaj Cntrl + Shift + dwukropek nie daje żadnej wartości „ss” :(
Abhinav Tiwari
1

Cóż, używając Ctrl + Przesunięcie + ; wyjaśnia twój problem. Polecam najpierw sformatować kolumnę, w której wstawiasz czas, jako hh:mm:ss pierwszy.

Wpisz formułę =NOW() i po naciśnięciu Wchodzić , natychmiast skopiuj / wklej wartości, aby usunąć formułę i wyodrębnić tylko wartość czasu. Problem polega na tym, że musisz wpisać jedną formułę naraz, ponieważ druga zostanie ponownie obliczona, gdy wprowadzisz więcej formuł.

Następnie odejmowanie powinno działać tak, jak chcesz.

EDYTOWAĆ:

Dobra, ściągnąłem mój rejestrator makr i przeprowadziłem badania, i wymyśliłem ten fragment kodu:

Private Sub Workbook_Open()
    Application.OnKey "+^:", "Insert_Time"
End Sub

Sub Insert_Time()
    ActiveCell.FormulaR1C1 = "=NOW()"
    Selection.NumberFormat = "hh:mm:ss;@"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Umieść to w Visual Basic.

  1. Przejdź do karty „Deweloper” & gt; "Visual Basic"
  2. Kliknij prawym przyciskiem myszy „ThisWorkbook” w prawym okienku i poszukaj „Wstaw” & gt; "Moduł"
  3. W polu tekstowym, które otworzy się w dużym lewym obszarze, umieść kod.
  4. Wykonaj polecenie „Plik” & gt; „Eksportuj” i nadaj nazwę modułowi, aby inni użytkownicy mogli zaimportować kod i nie robić tego ponownie. Upewnij się, że rozszerzenie „.bas” istnieje (nie znam jeszcze vby, ale jak dotąd „.bas” zrobił to, co chciałem) Aby zaimportować moduł, wykonaj polecenie „Plik” & gt; „Importuj” i wyszukaj moduł.
  5. Prawie na miejscu! Upewnij się, że kursor znajduje się gdzieś w obrębie Private Sub blok, a następnie kliknij mały zielony przycisk „Odtwórz” nad polem tekstowym. Nie wiem, dlaczego musisz to robić za każdym razem, a teraz nie wiem, jak to rozwiązać, przepraszam!

Jeśli nie możesz znaleźć karty „Deweloper”, przejdź do „Opcje programu Excel”, klikając okrągły przycisk programu Excel w lewym górnym rogu okna „Popular” i zaznacz „Pokaż kartę programisty na Wstążce”, a następnie „OK ”

Wreszcie, aby go użyć, po prostu wykonaj zwykłe czynności Ctrl + Przesunięcie + ; i powinno działać.

Wypróbuj i daj mi znać, jak to działa!

Jerry
źródło
Dzięki @Jerry. Wyjaśnia, w jaki sposób można to rozwiązać. Chcielibyście jednak zasugerować, jak mam to wcielić w życie, gdy mam do czynienia z licznymi punktami danych, tj. Przechwytywaniem badań czasu i czasu użytkowników, którzy wykonują pewne kroki. Jeśli poproszę ich o użycie opcji = teraz (), a następnie skopiowanie specjalnych wartości wklejania, ten krok rozłożony na 20 etapów procesu będzie miał wpływ na ich badanie czasu. Wszelkie sugestie & gt;
Abhinav Tiwari
@AbhinavTiwari Nie ma za co :)
Jerry
@AbhinavTiwari Przepraszamy! Nie widziałem twojego edytowanego komentarza. Dodałem trochę do mojej odpowiedzi, która obejmuje pewne kodowanie w VB. Nie jestem w tym dobry, ale to wydaje się załatwiać sprawę. Daj znać czy działa!
Jerry
Dzięki @Jerry za poświęcenie tyle czasu na moje zapytanie. Na pewno spróbuję. Chociaż makra są wyłączone w środowisku pracy .. Sob szlak :(
Abhinav Tiwari
@ AbhinavTiwari Hmm, nie jestem pewien, czy excel traktuje to jako makro, czy nie, ponieważ nazywa je „modułem”. Spróbuj zobaczyć proszę ^ _ ^
Jerry