Jak zatrzymać automatyczne formatowanie programu Excel i sprawić, aby działał jak program do łamania liczb

20

Mam prawdziwy problem z programem Excel w plikach CSV, w którym formatuje on liczby w określony sposób i nie mogę uzyskać programu Excel do prawidłowego wyświetlania danych bez względu na to, co robię.

Wyobraź sobie, że mam colum o nazwie „Product Reference”. W tej kolumnie mam wiele identyfikatorów tego typu:

  • 001145
  • 55666
  • 02133

Ilekroć otwieram plik Excel, formatuje te liczby, aby były:

  • 1145
  • 55666
  • 2133

Co jest całkowicie błędne. Po podświetleniu kolumny i sformatowaniu jej jako tekstu poprzednie 0 na początku liczb nie zwracają się.

Próbując rozwiązać ten problem, najpierw uczyniłem plik csv plikiem tekstowym, a następnie zaimportowałem plik do programu Excel i konkretnie powiedziałem mu, aby nie formatował liczb, ustawiając format tekstu w imporcie, ale nadal formatuje liczby po zamknięciu i otwórz go ponownie, ponieważ csv nie może zdefiniować typów, więc program Excel automatycznie zapisuje plik jako czysty śmieci.

Czy ktoś znalazł sposób na obejście tego i mógłby mi pomóc?

Dzięki,

Sammaye
źródło
O ile mi wiadomo, jedynym sposobem, aby Excel wiernie renderował plik CSV, jest zaimportowanie go jako tekst, zgodnie z opisem.
Excellll,
Nie musisz jednak przekształcać CSV w plik tekstowy. Funkcja Importuj z pliku tekstowego działa również w przypadku plików CSV. Musisz tylko określić, że masz separatory przecinków.
Excellll,

Odpowiedzi:

20

Musisz określić w pliku csv, że jest to tekst. Robisz to, umieszczając swój numer w cudzysłowie i poprzedzając go znakiem równości, np .:

="001145",="55666",="02133"

Najprostszym sposobem na to byłoby zrobić to znaleźć zamień na ,z ",="zastępując końca linii (może trzeba użyć zaawansowanego edytora jak Notepad ++ do tego) z "\r\n="i robi początek i koniec pliku ręcznie.

James
źródło
Fajnie :) Spróbuję to
powtórzyć
11
  1. Zmień rozszerzenie pliku z „.csv” na „.txt” w pliku, z którym masz problemy.
  2. Otwórz excel sam w sobie. Nie klikaj pliku, aby go otworzyć.
  3. Kliknij „Otwórz”, zmień typy plików, których szukasz, z „Wszystkie pliki Excel” na „Wszystkie pliki”
  4. Znajdź swój plik i kliknij Otwórz. Ponieważ Excel nie formatuje automatycznie txt, przejdzie przez kreatora.
  5. Upewnia się, że przycisk opcji „Rozdzielany” jest zaznaczony. Kliknij przycisk „Dalej”.
  6. Zaznacz pole ogranicznika „przecinek” i naciskaj przycisk „następny”, aż ZOBACZ (ale nie klikaj) przycisk zakończenia.
  7. przewiń każdą kolumnę w arkuszu kalkulacyjnym, zaznacz każdą kolumnę, którą chcesz ręcznie sformatować, i zmień format na „tekst”.
  8. Kliknij przycisk Zakończ.
Jan
źródło
To dobry, bezproblemowy sposób rozwiązania problemu.
Jack
Uratowałeś mi dzień!
dinesh ygv
2

Zainstaluj OpenOffice z Oracle i zrób to samo z formatem CSV OpenOffice i działa.

Miałem ten problem w Windows 7 Pro z Excelem 2010. Kiedyś mogłem kopiować kontakty z Outlooka do Excela, zapisywać jako CSV i importować do Gmaila i Androida (numery telefonów komórkowych z wiodącymi zerami i znakami +).

gabbymonster
źródło
1

Kliknij prawym przyciskiem myszy na komórkach zawierających dane, i kliknij Formatuj komórki ... pozycji menu. Następnie na pierwszej karcie („Liczba”) zmień kategorię z Ogólne na Tekst . Zapobiegnie to automatycznemu formatowaniu tych komórek jako liczb przez Excela, a tym samym usuwaniu zer wiodących (które są pozbawione znaczenia w kontekście analizy numerycznej, ale bardzo znaczące w przypadku identyfikatorów produktów).

Jeśli dane są importowane i analizowane jako liczby, należy użyć kreatora importu danych i ustawić dla każdego typu kolumny wartość „Tekst” zamiast „Ogólne”. Następnie zrób to samo z komórkami, a następnie zapisz skoroszyt programu Excel.

Przełom
źródło
Pliki CSV nie zachowują formatowania. To nie pomoże.
Excellll,
@Excellll oczywiście, to tylko kilka znaków ASCII rozdzielonych przecinkami. Domyślnie Excel zaznacza formaty komórek jako Ogólne i próbuje zinterpretować wartość (liczby, daty, cokolwiek), aby można było jej używać z formułami (jak zwykle zwykły tekst nie może). Musisz ręcznie powiedzieć Excelowi, aby interpretował wartość jako zwykły tekst, aby nie konwertował jej automatycznie.
Przełom
Tak, działałoby, gdyby program Excel nie „automatycznie zapisywał” formatowania pól :( Potrzebuję programu Excel, aby działał w taki sam sposób, jak każdy inny program otwierający CSV / Język programowania.
Sammaye
Próbowałem tego, Excel domyślnie przywraca go po otwarciu przekonwertowanego pliku Excel. Więc importuję z TXT do Excela i mówię tam, aby wyświetlał się jako tekst, zamykam plik i otwieram go, a Excel domyślnie wraca do formatu liczb dla pól ukrywających ich prawdziwą wartość i jestem z powrotem w sq one.
Sammaye
@Breakthrough, przepraszam, że nie wyraziłem, co miałem na myśli. Jak powiedziano w komentarzu, po otwarciu pliku CSV w programie Excel program Excel zastosuje formatowanie ogólne do wszystkich danych. W tym momencie tekst (tj. Zera wiodące), który jest faktycznie zapisany w pliku CSV, nie może zostać pobrany przez program Excel. Chodzi o to, że po otwarciu pliku CSV w programie Excel jest już za późno, aby zmienić formatowanie.
Excellll,
1

kliknij komórkę, w której chcesz zachować początkowe zera, a następnie: kliknij prawym przyciskiem myszy> Formatuj komórki> niestandardowe> 0> wpisz całkowitą liczbę, która musi znajdować się w komórce, na przykład: Jeśli potrzebuję 00001234, wstawię 00000000 jako liczba zer, wszystko, co mówi to do zrobienia, to wstawić całkowitą liczbę 8 do komórki, mam już 1234, więc to nadrobi różnicę 4 kolejnymi zerami wiodącymi.

Używam tego codziennie do importowania arkuszy kalkulacyjnych.

Adam
źródło
0

Aby dodać do odpowiedzi @ Jona na to pytanie, miałem plik CSV, który miał kilka kolumn z zerami wiodącymi i dłuższymi liczbami, które albo stracą wiodące zero, albo przekonwertują długą liczbę na notację naukową, lub obie, po zaimportowaniu.

Jedynym sposobem, który mogłem naprawić, było sformatowanie wszystkich komórek w pustym arkuszu Text, wykonując następujące czynności:

  1. Wybierz wszystkie komórki w arkuszu:

wprowadź opis zdjęcia tutaj

  1. Zmień format każdej komórki:

wprowadź opis zdjęcia tutaj

Po sformatowaniu wszystkich komórek arkusza, które mają być Text, mógłbym zaimportować plik CSV, wykonując następujące czynności:

  1. Na Datakarcie kliknij From Text:

wprowadź opis zdjęcia tutaj

  1. Wybierz swój .txtlub .csvplik i kliknijImport

  2. Wybierz Delimitedi kliknij `Dalej:

wprowadź opis zdjęcia tutaj

  1. Wybierz odpowiedni separator (wybrałem Comma) i odznacz wszystkie inne, które nie mają zastosowania, a następnie kliknij Next:

wprowadź opis zdjęcia tutaj

  1. Przewiń w prawo, aby znaleźć kolumny, które należy sformatować, Textaby zachować początkowe zera i zapobiec notacji naukowej. Kliknij kolumnę (powinna przyciemnić), a następnie wybierz Textz listy opcji. Pamiętaj, aby zaznaczyć wszystkie kolumny, które muszą być poprawnie sformatowane:

wprowadź opis zdjęcia tutaj

  1. Następnie kliknij Finish. Jeśli przewiniesz do sformatowanych kolumn, zobaczysz, że wszystkie zera wiodące są zachowane, a długie ciągi liczb nie są notowane naukowo.

Mam nadzieję, że to pomaga!

Michael
źródło
0

Jeśli dane zostały wygenerowane przy użyciu SQL. Powinno działać dodawanie znaku tabulacji do wartości liczbowej, która musi zostać obcięta.

-- Oracle PL/SQL
select "01234567890123456" || chr(9) from dual;
Lew
źródło