Excel - Rozpoznaj format daty JS

1

Mam usługę, która wypuszcza dane z bazy danych do formatu CSV, którego niekoniecznie mogę teraz zmienić.

Podczas gdy zapytanie wykonawcze zwraca standardowy format daty SQL - 2014-12-26 19:41:23.012 - pośrednie oprogramowanie pośrednie Node.js wydaje się przekształcać datę w standardowy format daty Javascript:

new Date().toString();
// -> Fri Dec 26 2014 19:36:00 GMT-0800 (Pacific Standard Time)

Ku mojemu przerażeniu, Excel nie może rozpoznać tego jako formatu daty i muszę iść na długie odcinki, aby podzielić go na coś, co Excel może rozpoznać.

Chociaż nie jestem zbyt zaznajomiony z tym, wiem Custom właściwość formatu komórki może pomóc w manipulacji datą.

Co muszę zrobić, aby program Excel rozpoznał ten format daty?

dthree
źródło
jest „Piątek 26 grudnia 2014 19:36:00 GMT-0800 (Pacyficzny czas standardowy)” dosłownie tak, jak Excel go otrzymuje? Czy to wszystko jedno pole CSV? Czy jesteś w PST?
fixer1234
Tak na obu powyższych.
dthree

Odpowiedzi:

1

Miałem prawie dokładny problem 2 dni temu. Data była w formacie tekstowym, a excel nie mógł jej przekonwertować bez jakiejkolwiek manipulacji. Oto, co musiałem zrobić z twoim łańcuchem, aby go uruchomić (używając Excel 2010):

  1. Na początku usuń „Pt” na początku i „GMT ...” Jeśli tekst jest w A1, B1 to:

=MID(A1,4,LEN(A1)-35

  1. Dodaj przecinek między dniem a rokiem. Tak więc kolumna C1 to:

=LEFT(B1, 7) & "," & MID(B1,8,LEN(B1))

  1. Konwertuj na datę / godzinę. Kolumna D1:

=DATEVALUE(C1)+TIMEVALUE(C1)

W zależności od tego, gdzie są twoje przestrzenie, być może będziesz musiał się wygłupiać indeksami strun. Nadal będziesz musiał użyć niestandardowego formatu, aby zmienić wyświetlacz na taki, jaki chcesz.

Można również połączyć to w jedną długą formułę:

=DATEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))+TIMEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))

Michael
źródło
0

The Zwyczaj format wyświetla tylko tekst lub numer w żądanym formacie. Jednak dane podstawowe powinny być najpierw rozpoznane przez Excela Zwyczaj format będzie działać.

W twoim przypadku musisz najpierw uzyskać 25 znaków od lewej w programie Excel.

=LEFT(A1,25)

Następnie wklej jako wartości, a następnie zastosuj Format daty i Excel to rozpozna.

Surya
źródło
1
Pobiłeś mnie do tego. Właśnie testowałem to w LibreOffice Calc. Wszystko, co zaczyna się od GMT, nie jest konieczne, chyba że znajdujesz się w innej strefie czasowej (w takim przypadku możesz po prostu wbudować stałą regulację, nie musisz odszyfrowywać i obliczać korekty dla każdego rekordu). „Piątek” jest wartością pochodną, ​​która nie jest potrzebna (można użyć MID () zamiast LEWEGO (), aby ją odciąć), ale Excel i Calc go ignorują. Po zapisaniu go jako daty / godziny możesz go sformatować lub użyć w razie potrzeby.
fixer1234
Dzięki i próbowałem tego (spróbowałem ponownie), ale Excel nadal nie rozpoznaje go jako daty. Dokładny przykład to: Sun Nov 02 2014 21:10:27
dthree
Sun Nov 02 2014 21:10:27 to musi być teraz sformatowane jako tekst. Najpierw musisz przekonwertować go na numer, a następnie zastosować format daty, a Excel go rozpozna. W tym celu musisz pomnożyć wartość przez 1. Like =A1*1 Następnie zmień go na format daty. Mam nadzieję, że to pomoże.
Surya
0

Zakładając, że komórka A1 ma wartość „Piątek 26 grudnia 2014 19:36:00 GMT-0800 (Pacyficzny czas standardowy)”, należy użyć następującej formuły dla prawidłowego wyjścia daty

=DATEVALUE(MID(A1,9,2)&MID(A1,5,3)&MID(A1,12,4))
Petr Fedorov
źródło