2013-04-18 23 views
21

Mam 100 000 wierszy danych w programie Excel. Niektóre pola są datami, ale pola w Excelu są tekstem. Potrzebuję tych pól w formacie liczbowym, w tym zarówno dat ORAZ czasu (np. 21.10.2011 13:10:50). Formatowanie komórek nie działa, ponieważ nie zmienia to typu danych. Mogę wybrać datę i godzinę za pomocą formuł, ale nie mogę ich znaleźć w tej samej komórce.Konwersja ciągu na datę w komórce

Czego szukam, to wzór do obliczenia reprezentacji liczbowej daty (tej, którą widzisz, jeśli sformatujesz datę jako liczbę).

+0

Zobacz ten link: http://stackoverflow.com/questions/15918073/excel-vba-date-format-conversion. Logika polega na sformatowaniu komórek, a następnie użyciu komórki.formula = cell.Text do przepisania. –

Odpowiedz

34

Czy wypróbowałeś funkcję =DateValue()?

Aby uwzględnić wartość czasu, po prostu dodaj funkcje razem:

=DateValue(A1)+TimeValue(A1)

+0

Przy just datevalue mogę wybrać datę, ale nie czas. Timevalue wybiera czas, ale nie datę ... – Machman

+0

co z '= DateValue (A1) + TimeValue (A1)'? –

11

pomieścić oba scenariusze dane, które będą chciały korzystać z tego:

datevalue(text(a2,"mm/dd/yyyy")) 

To daje reprezentacja numeru daty dla komórki, którą Excel ma na dzień lub w typie danych tekstowych.

+0

Daty źródłowe są zawsze w typach tekstowych. I zawsze chcę przekonwertować je na liczby w nowej kolumnie. Problem wydaje się sprowadzać do tego, że nie ma datetimepe datetimepe ... – Machman

1

Walczyłem z tym od jakiegoś czasu i po pomocy na stanowisku udało mi się wymyślić tę formułę =(DATEVALUE(LEFT(XX,10)))+(TIMEVALUE(MID(XX,12,5))), gdzie XX jest komórką odniesienia.

Natknąłem się na wiele innych forów, na których ludzie pytają o to samo, a to wydaje mi się najprostszą odpowiedzią. To, co to zrobi, to zwrócenie tekstu skopiowanego z tego formatu 2014/11/20 11:53 EST i przekształcenie go w format daty/czasu, aby mógł być sortowany najstarszy do najnowszego. Działa z krótką datą/długą datą, a jeśli chcesz, to po prostu sformatuj komórkę tak, aby wyświetlała czas i będzie się wyświetlać. Mam nadzieję, że to pomoże każdemu, kto szuka tak jak ja.

0

Najlepszym rozwiązaniem jest użycie funkcji DATE() i wyodrębnianie yy, mm i dd z ciągu za pomocą funkcji PRAWY(), MID() i LEFT(), ostateczny będzie pewien DATA (LEWO(), MID(), PRAWO()), szczegóły here

Powiązane problemy