przekonwertować ciąg tekstowy na format daty / godziny

19

Mam kolumnę, która jest sformatowana jak tekst 20110408_2041. Jak mogę sformatować go do formatu daty / godziny?

roman_bull
źródło

Odpowiedzi:

19

Zakładając, że Twój łańcuch ma kod RRRMMDD_GGMM dla roku, miesiąca, dnia, godziny, minuty, możesz zbudować formułę programu Excel w celu wygenerowania komórki w formacie daty / godziny.

Jeśli ciąg znajduje się w komórce A1, to ta formuła powinna to zrobić:

=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))+TIME(MID(A1,10,2),RIGHT(A1,2),0)

Będziesz musiał poprawnie sformatować komórkę, aby zobaczyć przedział czasu. Jest to testowane w programie LibreOffice calc, ale wydaje się, że Excel ma te same funkcje.

W_Whalley
źródło
Oba rozwiązania działają dobrze .. !!! Dzięki
roman_bull
10

Zakładając, że cały format jest YYYYMMDD_HHMMi że pierwsza taka wartość znajduje się w komórce A1, możesz użyć następującej formuły w B1:

=DATEVALUE(MID(A1,7,2) & "/" & MID(A1,5,2) & "/" & MID(A1,1,4)) + TIMEVALUE(MID(A1,10,2) & ":" & MID(A1,12,2))

Spowoduje to utworzenie numeru seryjnego daty na podstawie DD / MM / RRRR przy użyciu funkcji MID do zebrania każdej części oraz funkcji DATEVALUE do zwrócenia numeru seryjnego. Następnie dodaje do tego czasowy numer seryjny, który korzysta z funkcji MID w podobny sposób do zbierania godzin i minut.

Następnie możesz sformatować komórkę jako format daty, format godziny lub niestandardowy format powiedzmy dd / mm / rrrr gg: mm, aby zobaczyć wynik końcowy. Wystarczy kliknąć komórkę prawym przyciskiem myszy, wybrać Formatuj komórki, a następnie skonfigurować podobnie jak na zrzucie ekranu poniżej:

Formatuj dialog komórek

Oto zrzut ekranu wyniku końcowego:

Przykład

Gafel
źródło
Dziękuję, ten działał bezbłędnie, jeszcze raz dziękuję za podzielenie się tym !!
roman_bull
1

Miałem ten sam problem i zrobiłem tylko jedną prostą rzecz: =R1*1w S1, z formatem wybranym jako Czas, i zadziałało. Nie był potrzebny skomplikowany kod ani nic innego.

Selahudin Munawar
źródło
Proste jest dobre - to też działało dla mnie. Dzięki!
alias Allso
-4

Możesz to zrobić, pisząc mały skrypt (na przykład w języku C #), który odczytuje ciągi z kolumny, konwertuje je na format daty i godziny, a następnie zapisuje je z powrotem w kolumnie Excel.

Niestety nie wiem, czy możesz to zrobić bezpośrednio z poziomu programu Excel.

Hasan
źródło
1
Linki do Google są niezadowolone. Twoje wyniki będą się różnić od wyników innych.
Sathyajith Bhat