Ciągle mam problemy z datami w Excelu, muszę robić coś złego, ale nie rozumiem co.
Mam arkusz kalkulacyjny wyeksportowany z naszego serwera wymiany, który zawiera kolumnę z datami. Zostały wydane w formacie amerykańskim, mimo że jestem w Wielkiej Brytanii.
Ta kolumna wygląda następująco
04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011
W programie Excel podświetliłem kolumnę i wybrałem Format Cells...
. W tym oknie dialogowym, mam zaznaczone Date
, wybrany English (United States)
jako lokalizacji i wybrany format daty dopasowanie z listy. Nacisnąłem OK i próbuję posortować dane według tej kolumny.
W oknie dialogowym sortowania wybieram tę kolumnę, wybierz sortuj według Wartości, ale kolejność daje mi tylko opcje od A do Z, a nie od najstarszych do najnowszych, jak bym się spodziewał.
To z kolei sortuje dane daty według pierwszych dwóch cyfr.
Wiem, że mógłbym ponownie sformatować te dane do ISO, a wtedy sortowanie od A do Z działałoby, ale ja też nie powinienem, oczywiście czegoś brakuje. Co to jest?
EDYCJA: Pomieszałem nagrodę, ale powinna była przejść do odpowiedzi @ r0berts , jego pierwszej sugestii tekstu do kolumn bez separatora i wybrania „MDY” jako rodzaju danych. Dodatkowo, jeśli masz czas (tj. 04/21/2015 18:34:22
), Musisz najpierw pozbyć się danych czasu. Jednak po tym metoda sugerowana przez @ r0berts działa dobrze.
Odpowiedzi:
Problem: Excel nie chce rozpoznawać dat jako dat, mimo że poprzez „Formatuj komórki - Liczba - Niestandardowe” wyraźnie próbujesz powiedzieć, że są to daty do „
mm/dd/yyyy
”. Jak wiesz; gdy program Excel rozpoznaje coś jako datę, przechowuje to dalej jako liczbę - na przykład „41004
”, ale wyświetla się jako data zgodnie z określonym formatem. Aby dodać do zamieszania, excel może konwertować tylko część twoich dat, takich jak 08/04/2009, ale pozostawiać inne, np. 28.07.2009, bez konwersji.Rozwiązanie: kroki 1, a następnie 2
1) Wybierz kolumnę daty. W obszarze Dane wybierz przycisk Tekst do kolumn. Na pierwszym ekranie pozostaw przycisk opcji „ rozdzielany ” i kliknij Dalej . Usuń zaznaczenie dowolnego pola separatora ( puste pola ; żadnych znaczników wyboru) i kliknij Dalej . W kolumnie danych w formacie wybierz Data i MDY w sąsiednim polu kombi i kliknij Zakończ . Teraz masz wartości daty (tj. Excel rozpoznał twoje wartości jako
Date
typ danych), ale formatowanie prawdopodobnie nadal jest datą lokalizacji, a nie taką,mm/dd/yyyy
jaką chcesz.2) Aby poprawnie wyświetlić żądany format daty w USA, najpierw musisz wybrać kolumnę (jeśli nie jest zaznaczona), a następnie w polu Format komórki - Liczba wybierz Data ORAZ wybierz Ustawienia regionalne: angielski (amerykański) . Otrzymasz format taki jak „
m/d/yy
”. Następnie możesz wybrać Niestandardowy i tam możesz wpisać „mm/dd/yyyy
” lub wybrać z listy niestandardowych ciągów.Alternatywnie : użyj LibreOffice Calc. Po wklejeniu danych z posta Patricka wybierz Wklej specjalnie (
Ctrl+Shift+V
) i wybierz Niesformatowany tekst. Otworzy się okno dialogowe „Importuj tekst”. Zestaw znaków pozostaje Unicode, ale dla języka wybierz angielski (USA); należy również zaznaczyć pole „Wykryj numery specjalne”. Twoje daty są natychmiast wyświetlane w domyślnym formacie amerykańskim i można je sortować według dat. Jeśli chcesz mieć specjalny amerykański format MM / DD / RRRR, musisz to określić raz za pomocą „Formatuj komórki” - przed wklejeniem lub po nim.Można powiedzieć, że Excel powinien rozpoznać daty, gdy tylko powiem to przez „Format komórki” i nie mogę się zgodzić . Niestety dopiero w kroku 1 powyżej udało mi się sprawić, że Excel rozpoznaje te ciągi tekstowe jako daty. Oczywiście, jeśli często to robisz, jest to ból szyi i możesz stworzyć wizualną podstawową procedurę, która zrobiłaby to za naciśnięciem jednego przycisku.
Dane | Tekst do kolumn
Zaktualizuj wiodący apostrof po wklejeniu: Na pasku formuły widać, że w komórce, w której data nie jest rozpoznawana, znajduje się wiodący apostrof. Oznacza to, że w komórce sformatowanej jako liczba (lub data) znajduje się ciąg tekstowy. Można powiedzieć - wiodący apostrof uniemożliwia arkuszowi kalkulacyjnemu rozpoznanie liczby. Musisz to sprawdzić w pasku formuły - ponieważ arkusz kalkulacyjny po prostu wyświetla coś, co wygląda jak liczba wyrównana do lewej. Aby rozwiązać ten problem, wybierz kolumnę, którą chcesz poprawić, wybierz z menu
Data | Text to Columns
i kliknij OK. Czasami będziesz w stanie określić typ danych, ale jeśli wcześniej ustawiłeś format kolumny na swój konkretny typ danych - nie będziesz go potrzebował. Polecenie to naprawdę ma na celu podzielenie kolumny tekstowej na dwie lub więcej za pomocą separatora, ale działa to również jak urok tego problemu. Ja testowałem go w LibreOffice , ale tam jest taka sama pozycja menu w Excelu też.źródło
Zaznacz wszystkie kolumny i przejść, aby zlokalizować i wymienić i po prostu zastąpić
"/"
z/
.źródło
Miałem dokładnie ten sam problem z datami w programie Excel. Format spełnił wymagania dotyczące daty w programie Excel, ale bez edycji każdej komórki nie rozpoznałby daty, a gdy masz do czynienia z tysiącami wierszy, nie jest praktyczne ręczne edytowanie każdej komórki. Rozwiązaniem jest uruchomienie funkcji znajdź i zamień w wierszu dat, w którym zastąpiłem łącznik łącznikiem. Program Excel przechodzi przez kolumnę, zastępując znak podobny do podobnego, ale wynikowy czynnik polega na tym, że teraz ponownie oblicza daty! NAPRAWIONY!
źródło
Miałem do czynienia z podobnym problemem z tysiącami wierszy wyodrębnionych z bazy danych SAP i, niewytłumaczalnie, dwoma różnymi formatami dat w tej samej kolumnie daty (większość to nasze standardowe „RRRR-MM-DD”, ale około 10% to „MM- DD-RRRR ”). Ręczna edycja 650 wierszy raz w miesiącu nie była opcją.
Żadna (zero ... 0 ... zero) powyższych opcji nie zadziałała. Tak, wypróbowałem je wszystkie. Kopiowanie do pliku tekstowego lub jawne eksportowanie do txt wciąż nie miało żadnego wpływu na format (lub jego brak) 10% dat, które po prostu siedziały w kącie, odmawiając zachowania.
Jedynym sposobem, w jaki udało mi się to naprawić, było wstawienie pustej kolumny po prawej stronie niewłaściwej kolumny daty i użycie następującej, dość uproszczonej formuły:
(zakładając, że Twoje błędnie zachowujące się dane są w
Column D
)=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))
Mógłbym następnie skopiować wyniki w mojej nowej, obliczonej kolumnie nad niepoprawnymi datami, wklejając „Wartości” tylko po czym mogłem usunąć moją kolumnę obliczoną.
źródło
Może to nie dotyczyć pierwotnego pytającego, ale może pomóc komuś innemu, kto nie jest w stanie posortować kolumny dat.
Odkryłem, że Excel nie rozpoznaje kolumny dat, które były wszystkie przed 1900 rokiem, nalegając, aby były one kolumną tekstu (ponieważ 1/1/1900 ma numeryczny odpowiednik 1, a liczby ujemne najwyraźniej nie są dozwolone). Zrobiłem więc ogólną zamianę wszystkich moich dat (które były w 1800 roku), aby umieścić je w latach 1900, np. 180 -> 190, 181 -> 191 itd. Następnie proces sortowania działał dobrze. Wreszcie zrobiłem wymianę w inny sposób, np. 190 -> 180.
Mam nadzieję, że pomoże to innemu historykowi.
źródło
Wygląda na to, że Excel nie rozpoznaje twoich dat jako dat, rozpoznaje ich tekst, dlatego otrzymujesz opcje Sortuj od A do Z. Jeśli zrobisz to poprawnie, powinieneś otrzymać coś takiego:
Dlatego ważne jest, aby Excel rozpoznał datę. Najprostszym sposobem na to jest użycie skrótu CTRL+SHIFT+3.
Oto, co zrobiłem z Twoimi danymi. Po prostu skopiowałem go z powyższego wpisu i wkleiłem w programie Excel. Następnie zastosowałem powyższy skrót i dostałem wymaganą opcję sortowania. Sprawdź obraz.
źródło
04/08/2012
,04/09/2009
i04/01/2010
jako 4-sie-2012 , Odpowiednio, 4 września 2009 r. I 4 stycznia 2010 r. I traktuje się04/21/2011
jak ciąg tekstowy (ponieważ nie ma 21 miesiąca). Ponieważ niektóre wartości są tekstem (a niektóre wartości prawdopodobnie zostały błędnie zinterpretowane), formatowanie (takie jak skrót klawiszowy Ctrl + Shift + 3) nie przyniesie nic dobrego.Podejrzewam, że problemem jest to, że Excel nie jest w stanie zrozumieć formatu ... Chociaż wybierzesz format daty, pozostaje on tekstem.
Możesz to łatwo przetestować: kiedy próbujesz zaktualizować format dat, wybierz kolumnę i kliknij go prawym przyciskiem myszy i wybierz formatuj komórki (jak już to robisz), ale wybierz opcję 2001-03-14 (u dołu listy). Następnie sprawdź format swoich komórek.
Podejrzewam, że tylko niektóre formaty daty aktualizują się poprawnie, co wskazuje, że Excel nadal traktuje to jak ciąg, a nie datę (zwróć uwagę na różne formaty na poniższym zrzucie ekranu)!
Istnieją obejścia tego problemu, ale żadne z nich nie zostanie zautomatyzowane tylko dlatego, że eksportujesz za każdym razem. Sugerowałbym użycie VBa, gdzie można po prostu uruchomić makro, które konwertuje format daty z USA na Zjednoczone Królestwo, ale oznaczałoby to kopiowanie i wklejanie VBa za każdym razem.
Alternatywnie możesz utworzyć program Excel, który odczytuje nowo utworzone wyeksportowane arkusze Excela (z wymiany), a następnie uruchomić VBa, aby zaktualizować format daty. Zakładam, że wyeksportowany plik programu Excel Excel zawsze będzie miał tę samą nazwę / katalog i podam działający przykład:
Utwórz nowy arkusz Excela o nazwie ImportedData.xlsm (excel włączony). To jest plik, do którego zaimportujemy wyeksportowany plik programu Excel Excel!
Dodaj tę VBa do pliku ImportedData.xlsm
Zrobiłem też aktualizację formatu daty do rrrr-mm-dd, ponieważ w ten sposób, nawet jeśli Excel podaje filtr sortowania AZ zamiast najnowszych wartości, nadal działa!
Jestem pewien, że powyższy kod zawiera błędy, ale oczywiście nie mam pojęcia, jakiego rodzaju dane posiadasz, ale przetestowałem je z jedną kolumną dat (jak masz) i działa dobrze dla mnie!
Jak dodać VBA w MS Office?
źródło
https://support.office.com/en-us/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680
Proste rozwiązanie tutaj - utwórz nową formułę use = datevalue (komórka), a następnie skopiuj formułę do innych wierszy - kilka sekund, aby naprawić
źródło
Rozgryzłem to!
Na początku i na końcu daty jest spacja.
źródło
Jeśli program Excel uparcie odmawia uznania kolumny za datę, zastąp ją inną:
Format
date
Paste Special
i wklej tylkovalues
źródło
Właśnie skopiowałem liczbę 1 (jeden) i pomnożyłem ją do kolumny daty (danych) za pomocą funkcji WKLEJ SPECJALNE. Następnie zmienia się na Ogólne formatowanie, tj. 42102. Następnie należy zastosować datę na formatowaniu i rozpoznaje ją jako datę.
Mam nadzieję że to pomoże
źródło
Wszystkie powyższe rozwiązania - w tym r0berts - zakończyły się niepowodzeniem, ale uznały to dziwne rozwiązanie, które okazało się najszybszym rozwiązaniem.
Próbowałem posortować „daty” na pobranym arkuszu kalkulacyjnym transakcji na koncie.
Zostało to pobrane za pośrednictwem przeglądarki CHROME. Żadna manipulacja „datami” nie sprawiłaby, że zostałyby one uznane za sortowane od starych do nowych.
Ale potem pobrałem przez przeglądarkę INTERNET EXPLORER - niesamowite - mogłem sortować natychmiast bez dotykania kolumny.
Nie potrafię wyjaśnić, dlaczego różne przeglądarki wpływają na formatowanie danych, poza tym, że wyraźnie to zrobiło i było bardzo szybką poprawką.
źródło
Moje rozwiązanie w Wielkiej Brytanii - miałem daty z kropkami w następujący sposób:
Rozwiązałem to w następujący sposób:
14-03-12
(niezbędny, aby mój miał środkową kreskę)Podczas sortowania kolumny wszystkie daty roku są sortowane.
źródło
Próbowałem różnych sugestii, ale znalazłem najłatwiejsze rozwiązanie dla mnie w następujący sposób ...
Przykład: patrz obrazy 1 i 2 ... (uwaga - niektóre pola zostały celowo ukryte, ponieważ nie przyczyniają się do przykładu). Mam nadzieję, że to pomoże...
Pole C - mieszany format, który doprowadził mnie do szaleństwa. W ten sposób dane pochodziły bezpośrednio z bazy danych i nie miały dodatkowych spacji ani zwariowanych znaków. Podczas wyświetlania go na przykład jako tekstu, 01.01.2016 jest wyświetlany jako wartość typu „42504”, zmieszany z 15.04.2006, który pokazał, że jest.
Pole F - gdzie uzyskałem długość pola C (wzór LEN miałby długość 5 z 10 w zależności od formatu daty). Pole ma format ogólny dla uproszczenia.
Pole G - uzyskanie komponentu miesiąca mieszanej daty - na podstawie wyniku długości w polu F (5 lub 10), albo uzyskuję miesiąc z wartości daty w polu C, albo uzyskuję znaki miesiąca w ciągu.
Pole H - uzyskanie składnika dnia mieszanej daty - w oparciu o wynik długości w polu F (5 lub 10), albo otrzymuję dzień z wartości daty w polu C, albo uzyskam znaki dnia w ciągu.
Mogę to zrobić również dla roku, a następnie utworzyć spójną datę z trzech składników. W przeciwnym razie mogę użyć poszczególnych wartości dnia, miesiąca i roku w mojej analizie.
Zdjęcie 1: podstawowy arkusz kalkulacyjny pokazujący wartości i nazwy pól
Zdjęcie 2: arkusz kalkulacyjny zawierający formuły pasujące do powyższego wyjaśnienia
Mam nadzieję, że to pomoże.
źródło
04/08
są niejednoznaczne.04/08
będą interpretowane jako 8 kwietnia w niektórych lokalizacjach (takich jak Stany Zjednoczone) i 4 sierpnia w innych (takich jak Anglia). Ale są one dwuznaczne właśnie dlatego, że numer miesiąca i dzień miesiąca są różne. … (Ciąg dalszy)01/01
w odpowiedzi? (3) W rzeczywistości nie jestem pewien, czy rozumiesz problem, ani czy twoja odpowiedź faktycznie działa, ponieważ arkusz ma wiersze, w których miesiąc nr to 15; wydaje się to oczywistym błędem. A biorąc pod uwagę, że04/15
jest to jednoznaczne - musi to oznaczać 15 kwietnia - nie ma sensu, aby twoja metoda była analizowana01/11
jako pierwszy dzień 11 miesiąca. … (Ciąg dalszy)5/8
,5/08
,5/28
,05/8
, i11/8
. Również - zabawny fakt - Twoja odpowiedź nie powiedzie się w dniach ≤ 17 maja 1927 r. I ≥ 17 października 2173 r. Nieważne, że problem z Y10K; problemy możemy zacząć już za 154 lata! (5) Mówisz: „Mogę to zrobić również dla roku, a następnie utworzyć datę z trzech spójnych elementów”. Dlaczego więc nie, i pokazać to? … (Ciąg dalszy)01/11/2016
albo11/01/2016
?) A jeśli masz zamiar użyć własnych danych, byłoby miło, gdyby trzeba było zawarte pochodzi z tego samego miesiąca, wykazać (na przykład), jak1/11
i1/21
są obsługiwane różnie. A dlaczego zduplikowane dane? Zmarnowałeś 19 wierszy, używając tych samych czterech wartości wiele razy, rozłożonych na 23 wiersze.UDOSTĘPNIANIE MAŁEGO DŁUGIEGO ALE DUŻO ŁATWIEJSZE ROZWIĄZANIE DLA PODMIOTU ... Nie trzeba uruchamiać makr ani maniaków ... proste MS Excel formuły i edycja.
mieszane daty excel migawka:
#VALUE
wynik. - Wreszcie z utworzonego przez nas ciągu - przekonwertowaliśmy je na daty według formuły DATE.#VALUE
zostały wybrane bez zmian przez dodanie IFERROR do formuły DATE i kolumna została sformatowana zgodnie z wymaganiami (tutaj, dd / mmm / rr)* PATRZ SNAPSHOT KARTY EXCEL POWYŻEJ (= migawka z mieszanymi datami excel) *
źródło
V
,W
iX
kiedy należy je odwołując się do kolumnyB
,C
iD
. … (Ciąg dalszy)5/8/2014
lub5/08/2014
). A jeśli zamierzasz korzystać z własnych danych, byłoby miło, gdybyś podał daty z tego samego miesiąca, aby zademonstrować (na przykład), w jaki sposób5/8
i jak postępować5/28
inaczej. A dlaczego zduplikowane dane? Zmarnowałeś sześć wierszy, używając tych samych wartości więcej niż raz.Dzieje się tak przez cały czas podczas wymiany danych daty między lokalizacjami w Excelu. Jeśli masz kontrolę nad programem VBA, który eksportuje dane, sugeruję wyeksportowanie liczby reprezentującej datę zamiast samej daty. Liczba jednoznacznie koreluje z jedną datą, niezależnie od formatowania i ustawień regionalnych. Na przykład zamiast pliku CSV z 24/09/2010 wyświetli 40445.
W pętli eksportu, gdy trzymasz każdą komórkę, jeśli jest to data, przekonwertuj na liczbę za pomocą CLng (myDateValue). To jest przykład mojej pętli przebiegającej przez wszystkie wiersze tabeli i eksportującej do pliku CSV (uwaga: zastępuję również przecinki w ciągach znacznikiem, który usuwam podczas importowania, ale możesz nie potrzebować tego):
źródło
Nie miałem szczęścia z wszystkimi powyższymi sugestiami - wymyśliłem bardzo proste rozwiązanie, które działa jak urok. Wklej dane do Arkuszy Google, podświetl kolumnę daty, kliknij format, a następnie ponownie numer i numer, aby zmienić go na format liczbowy. Następnie kopiuję i wklejam dane do arkusza kalkulacyjnego Excel, klikam daty, a następnie formatuję komórki do tej pory. Bardzo szybko. Mam nadzieję że to pomoże.
źródło
Ten problem doprowadzał mnie do szału, a potem natknąłem się na łatwą naprawę. Przynajmniej działało dla moich danych. Łatwo to zrobić i zapamiętać. Ale nie wiem, dlaczego to działa, ale zmiana typów jak wskazano powyżej nie. 1. Wybierz kolumny z datami 2. Wyszukaj rok w datach, na przykład 2015. Wybierz Zamień wszystko na ten sam rok, 2015. 3. Powtórz dla każdego roku. Z roku na rok zmienia to typy na rzeczywiste daty.
Jest to nadal kłopotliwe, jeśli masz wiele lat danych. Szybciej jest szukać i zamieniać 201 na 201 (zastąpić 2010 do 2019); zamień 200 na 200 (w celu zastąpienia 2000 do 2009); i tak dalej.
źródło
Wybierz daty i uruchom nad nim ten kod ...
źródło
Używam Maca.
Przejdź do preferencji programu Excel> Edytuj> Opcje daty> Automatycznie przekonwertuj system dat
Również,
Przejdź do Tabele i filtry> Grupuj daty podczas filtrowania.
Problem prawdopodobnie zaczął się, gdy otrzymałeś plik z innym systemem dat, co zepsuło twoją funkcję Excela
źródło
Zwykle tworzę dodatkową kolumnę do sortowania lub sumowania, więc użyj
year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1)
.To zapewni
yyyymmdd
wynik, który można posortować. Użycielen(a1)
just pozwala na dodanie dodatkowego zera dla miesięcy 1-9.źródło