Wprowadzanie danych czasu w programie Excel w formacie mm: ss (bez początkowego 0: dla godzin)

16

Chcę wprowadzić dane czasu do arkusza programu Excel w formacie mm: ss. Problem polega na tym, że chociaż format komórki to mm: ss, jeśli wprowadzę takie dane:

12:33 przechowywana rzeczywista wartość wynosi 12 godzin i 33 min. jeśli chcę 12 minut i 33 sekund, muszę wprowadzić 0:12:33

Czy istnieje sposób, aby komórka przyjęła 12:33 jako mm: ss?

Dani
źródło
2
Aby wyświetlić minuty większe niż 59, sformatuj komórkę jako [MM]:SS. Jak: 02:10:45wyświetliby się jako 130:45zamiast. Ale najwyraźniej to nie działa w przypadku danych wejściowych.
Arjan

Odpowiedzi:

6

Czas jest powszechnie wprowadzany w formacie Godziny: Minuty: Sekundy, więc nie można zmienić tego formatu wpisu. Możesz oczywiście zmienić format wyświetlania, ale niestety musisz przestrzegać formatu wejściowego.

Steve
źródło
wygląda na to, że nie ma rozwiązania mojego problemu, ponieważ nawet użycie skryptów nie pomoże, ponieważ formatowanie maskuje to, co faktycznie pisze użytkownik.
Dani,
Czy jest to format uniwersalny hh:mm:ssczy h:mm:ss? @ Steve
Shayan
Powiedziałbym, że to h:mm:ss@Shayan
Steve
14

Jak odpowiedział Steve , Excel interpretuje dane wejściowe użytkownika 12:33jako 12h33m. Nie można zmienić tego sposobu, w jaki Excel akceptuje dane wejściowe użytkownika.

Jak wspomniałeś w komentarzu, użytkownicy 12:33dodawaliby, ale oznaczali 12m33s.

Oto rozwiązanie obejścia pozwalające uzyskać prawidłową wartość do obliczeń.

  1. Sformatuj komórkę A1 (dane wprowadzone przez użytkownika, np. 12:33) Jako[h]:mm
  2. Wprowadź formułę =A1/60w komórce B1
  3. Sformatuj komórkę B1 jako [m]:ss

Wyświetlana wartość powinna być taka sama w A1 i B1. Jednak B1 będzie rzeczywistą wartością, którą chcesz .

wilson
źródło
2
Ładny. Lub: sformatuj dane wejściowe jako wartość ciągu / tekstu i użyj czegoś w rodzaju TIMEVALUEkonwersji .
Arjan
1
Wartości wyświetlane w A1 i B1 nie są takie same, jeśli mm> 23
Alaa M.
1
@AlaaM. dzięki za znalezienie. odpowiedź została zaktualizowana w celu rozwiązania problemu. use [h]and[m]
wilson
3

Jest rozwiązanie! Umieść ten kod VBA w module arkusza, tj .:

  1. Otwórz Edytor Visual Basic ( Alt- F11)
  2. W lewym górnym widoku drzewa kliknij dwukrotnie arkusz, w którym chcesz wprowadzić swoje czasy
  3. W środkowym panelu kodu umieść poniższy kod.
  4. Zamknij VBE

Użyj tego kodu:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
    Application.EnableEvents = False
    Target.Value = Target.Value / 60
    Target.NumberFormat = "mm:ss"
    Application.EnableEvents = True
End Sub

Jeśli już sformatowałeś zakres, w którym wprowadzasz dane, użyj tego wiersza zamiast pierwszego wiersza:

If Target.Value < 0 Or Target.Value > 1 Then Exit Sub

Pamiętaj, że zmieni to wartość i format - za każdym razem, gdy wpiszesz godzinę - lub coś pomiędzy 0 a 1! Jeśli chcesz ograniczyć go do określonej kolumny, dodaj ten wiersz:

If Target.Column <> 3 Then Exit Sub

lub ten wiersz, aby ograniczyć go do określonego zakresu

If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
Peter Albert
źródło
2

Najłatwiejszy sposób na wypracowanie ukończonych godzin

Sformatuj komórkę (A1) hh:mm

Wejście normalne ( 07:22)

Sformatuj komórkę (B1) hh:mm

Wejście normalne ( 16:00)

Sformatuj komórkę (C1) h:mm

Wprowadź wszystkie dane do komórki (C1) w następujący sposób: =(A1+B1)/60

Don_T
źródło
1

Podświetl komórkę / kolumnę, która ma być czasem trwania, kliknij prawym przyciskiem myszy, aby „Formatować komórki”. Przejdź do „Niestandardowy” i poszukaj „h: mm”, jeśli chcesz wprowadzić czas trwania w formacie godziny i minuty. Jeśli chcesz uwzględnić także sekundy, kliknij „h: mm: ss”. Możesz nawet zsumować całkowity czas trwania.

Mam nadzieję że to pomoże.


źródło
1

Uważam, że najlepiej wpisać minuty w kolumnie A, a następnie sekundy w kolumnie B. Następnie można zsumować kolumny. Wszystko jako normalny format liczb.

Następnie zamień sekundy> 60 na minuty, dzieląc sumę w kolumnie B przez 60 i dodaj INT do sumy A kolumny i pozostaw resztę MOD w kolumnie B.

Alternatywnie możesz mieć kolumnę C jako liczbę dziesiętną, mając wzór, = (A1+(B1/60))który da minuty dziesiętne. Na dole kolumny C zrób sumę, a następnie zastosuj formułę, aby przekonwertować część dziesiętną z powrotem na sekundy, jak następuje powiedz, C22gdzie jest suma, a następnie C23wprowadź formułę =MOD(C22,1)*60.

Teraz A23wprowadź formułę, =INT(C22)aby wyświetlić Łączną liczbę minut łącznie z minutami z sumy w C22.

MartinCC
źródło
1

Miałem ten sam problem i oto rozwiązanie, które znalazłem: Wprowadź formułę za pomocą TIMEfunkcji, która tworzy macierz czasu =TIME(H,M,S)i formatuj ją, jak chcesz. Nadal musisz wprowadzać 0 godzin za każdym razem, ponieważ matematyka, ale dzięki temu wszystko jest nieskończenie bardziej wykonalne.

Alex Madjarov
źródło
0

Rozwiązanie powyżej. Podczas korzystania z tego h:mmformatu program Excel nie pozwoli Ci przekroczyć 23. Dodaj nawiasy kwadratowe do godzin w swoim formacie [h]:mmi możesz przejść powyżej 23.

Aby obliczyć wartość w sekundach, ustaw komórkę na „ogólny” format liczb, a następnie wpisz następującą formułę

=HOUR(A1)*60+MINUTE(A1)
Yakshi One
źródło