Dlaczego Excel traktuje długie ciągi liczbowe jako notację naukową, nawet po zmianie formatu komórki na tekst

117

Próbuję przetworzyć niektóre dane w programie Excel. Dane obejmują numeryczne numery kont i inne długie ciągi numeryczne (takie jak MEID telefonów komórkowych). Nie wykonuję operacji matematycznych na tych ciągach, więc chcę, aby Excel traktował je jako zwykły tekst.

Oto, co mnie wariuje (to Excel 2010):

  1. Weź długą liczbę, np. 1240800388917 i wklej ją w komórce w nowym arkuszu.
  2. Domyślny format komórek programu Excel jest ogólny, więc ciąg jest prezentowany w notacji naukowej jako 1.2408E + 12
  3. Kliknij komórkę prawym przyciskiem myszy, wybierz Formatuj komórki, ustaw format na Tekst

Komórka jest nadal wyświetlana w notacji naukowej, mimo że format został ustawiony na tekst.

Teraz, jeśli wykonam kroki w innej kolejności:

  1. Sformatuj pustą komórkę jako tekst. Kliknij komórkę prawym przyciskiem myszy, wybierz Formatuj komórki, ustaw format na Tekst
  2. Weź długą liczbę, np. 1240800388917, i wklej ją do komórki sformatowanej w tekście

Teraz komórka jest wyświetlana jako ciąg, a nie w notacji naukowej.

Wyniki pozostają w notacji naukowej, nawet jeśli komórka jest sformatowana, ponieważ tekst wydaje mi się po prostu uszkodzony. Widziałem sugerowane obejścia, takie jak: użyj importu CSV i ustaw format na tekst, dodaj spację na początku każdego łańcucha numerycznego i inne.

Czy istnieje prosty sposób na obejście tych ciągów w formacie tekstu?

Dlaczego, u licha, Excel to robi?

Znalezione pokrewne pytania SU: Jak sprawić, by Excel 2007 przestał formatować duże liczby jako notację naukową? i Czy to zachowanie Excela wymaga dużej liczby szesnastkowej?

Michael Levy
źródło
Długi numer 1240800388917jest kopiowany z innej komórki? A może zwykły tekst, jak z Notatnika?
wilson,

Odpowiedzi:

24

Ach, wspomnienia danych, które cofnęły się od czasu, gdy przeprowadziłem masowe sprawdzanie krzyżowe liczb w Excelu (nigdy więcej). Kiedy wciskasz długie ciągi liczbowe do Excela, spróbuj powiedzieć, 12345678901234567890 (20 cyfr), Excel ogólnie przekonwertuje je dla ciebie , co oznacza, że ​​20-cyfrowy numer, który właśnie wprowadziłeś, został skrócony do zaledwie piętnastu znaczących cyfr.

Uwaga: konwersja jest obcięciem, a nie zaokrągleniem. (12345678901234567890 to 1.2345678901234 6 E + 19, ale program Excel wyświetli 1,2345678901234 5 E + 19)

Dzieje się tak w momencie wejścia, więc kiedy już wejdzie, wszelkie dodatkowe szczegóły zostaną utracone, więc nawet jeśli powiesz Excelowi, że naprawdę miałeś na myśli, że to był tekst, a nie liczba, masz trochę szczęścia, a więc dlaczego twoja pierwsza sekwencja nie działa.

tanantish
źródło
1
Tak, widzę to zachowanie, gdy mój ciąg liczbowy ma więcej niż 15 cyfr znaczących. 12345678901234567890 staje się 1.23456789012345E + 19, jak mówisz. Kiedy klikam komórkę, pole edycyjne pokazuje łańcuch obcięty i uzupełniony zerami jako 12345678901234500000. Dziwne jest to, że robi to samo z liczbami, które nie przekraczają limitu 15 cyfr programu Excel. Jeśli wkleję w 12345678901234, zostanie wyświetlony jako 1.23457E + 13, ale po kliknięciu pole edycji nadal pokazuje oryginalny ciąg. Dziwne jest to, że jeśli sformatuję tę komórkę na tekst, nadal będzie to widoczne w notacji naukowej. Denerwujący.
Michael Levy,
7
To jest trochę dziwactwo wyświetlania - ustawienie formatu z ogólnego na tekstowy nie natychmiast pokaże go jako oryginalny ciąg, ale jeśli wejdziesz i edytujesz dane (jak w, po prostu kliknij strefę edycji i kliknij ) zaktualizuje się tak, aby był dokładnie tym, co
wstawiłeś
11
Szybki hack: ustaw formatowanie w odpowiednich kolumnach, skopiuj wklej do notatnika, a następnie do Excela.
Brian
9
To powinno nie być Zaakceptowanych odpowiedź : patrz następny poniżej.
javadba
3
Więc wspominałeś i powtarzałeś problem. Jak to naprawić?
user3932000,
162

Działa to dla mnie w programie Excel 2010. Po prostu wybierz kolumnę, kliknij prawym przyciskiem myszy, Formatuj komórki, Niestandardowe i wybierz opcję 0 (druga opcja poniżej Ogólne).

Anonimowy
źródło
25
Jest to o wiele lepsze niż zaakceptowana odpowiedź, która mówi „masz pecha”! Miałem plik CSV, który miał ten problem, a niestandardowe rozwiązanie formatowania działało idealnie.
davidair
4
należy zaakceptować odpowiedź, ktoś powinien / mógłby zmienić?
qwertzman,
11
W moim teście nadal wydaje się to obcięte. Korzystając z programu Excel 2013, wpisałem następujący tekst w komórce 12345678901234567890. Po naciśnięciu klawisza Enter jest wyświetlany jako 1.23457E + 19, a wartość bazowa jest zmieniana na 12345678901234500000, więc następuje utrata danych. To nie odpowiada na pierwotne pytanie.
Michael Levy,
1
Oto rok później przeglądam tę samą odpowiedź i żałuję, że nie mogę jej ponownie głosować.
billynoah
7
Ta odpowiedź naprawia formatowanie, ale nie zachowuje wprowadzonych danych. Dlatego nie mogę zaakceptować poprawnej odpowiedzi. Zamieściłem krótki film do pokazania. Po wykonaniu tych wskazówek, a następnie wprowadzeniu długiej liczby całkowitej, takiej jak 12345678901234567890, tracisz precyzję, traktując ją jako numeryczną, nawet jeśli jest wyświetlana w notacji nienaukowej. Excel traktuje go jako wartość 12345678901234500000. Tylko traktując go jako tekst, można zachować wszystkie cyfry. Zobacz youtu.be/7EDcR7TQpYs
Michael Levy
13

Pojedynczy apostrof przed liczbą zmusi program Excel do traktowania liczby jako tekstu (w tym domyślnego wyrównania do lewej). A jeśli oznaczyłeś błędy, wyświetli się jako liczba zapisana jako błąd tekstowy w komórce.

dav
źródło
Nie zawsze tak jest. Excel czasami mungował moje dane, nawet wiodącym apostrofem.
Cerin
3
Cerin, uczciwa rzecz, której nigdy nie lekceważy Excel (lub Microsoft) zdolność do zrobienia czegoś całkowicie niewytłumaczalnego lub powtarzalnego. Jednak sztuczka apostrofowa zazwyczaj działa zgodnie z reklamą.
dav
1
czy możesz to zrobić zbiorczo? Mam dane z 60000 komórkami, które chcę przekonwertować na tekst.
vaibhavcool20
Lub po prostu wybierz formatowanie tekstu za pomocą kliknięcia prawym przyciskiem myszy, menu Formatuj komórki;)
Shayan
13

Odkryłem, że w pakiecie Office 2010, jeśli najpierw sformatujesz kolumnę, a następnie wkleisz dane, poprawnie wyświetli duże liczby.

M Akin
źródło
Jest tak prawdopodobnie dlatego, że jest przechowywany jako ciąg. Co się stanie, jeśli utworzysz inną komórkę, powiedzmy, zawartość komórki pomnożoną przez 2?
Peter Mortensen
1
Działa to w programie Excel 2016 / Office 365. Wybrałem wszystkie komórki, sformatowałem je do tekstu, a następnie wkleiłem skopiowane dane i nie pojawiło się to z irytującym zapisem naukowym. Dzięki!
frezq
To, co również działało dla mnie w Arkuszach Google ... „Format> Liczba> 0” przed wklejeniem w vals i nie zostało przekształcone w notację naukową, a jednocześnie NIE straciło wartości końcowych (zaokrąglenie w dół vals), co działo się zbyt często .
twknab
12

Spróbuj tego ... to działa dla mnie, Excel 2013.

=""&a1

gdzie a1 zawiera wartość liczbową. Następnie skopiuj kolumnę i wklej do oryginalnej kolumny.

Rok
źródło
Działa to również w programie Excel 2010.
Paul G
2
Jako węzeł boczny: ="1240800388917"robi to samo
nixda,
5

Możesz sformatować komórki jako Niestandardowe> #

Można to zastosować po wklejeniu danych do kolumny, ale musisz to zrobić przed zapisaniem arkusza kalkulacyjnego.

Dużo pracuję z kodami kreskowymi (UPC) i Excel domyślnie sformatuje je jako notację naukową. Doprowadza mnie do szału! Dlaczego nie jest to opcja, której nigdy nie poznam.

Graham
źródło
Nie zmienia to jednak liczb w tekst, co może później powodować problemy. Ale cóż ...
Joris Meys
5

Zdaję sobie sprawę z wieku pytania, ale wylądowałem po wyszukiwaniu w Google i który nie odpowiedział na moje pytanie (dlaczego formatowanie jako tekst nie działa i dlaczego liczba jest zmniejszana do 15 cyfr po formacie pisać).

Krótka odpowiedź brzmi: nie możesz pracować nad swoim numerem tak, jak lubisz PO wprowadzeniu wartości numerycznej i naciśnięciu Enter. Gdy to zrobisz, liczba zostanie obcięta do 15 cyfr i przedstawiona w postaci wykładniczej.

To nie jest błąd, to funkcja.

Wszystko, co zrobisz później, będzie używało wartości skróconej, więc żadna sztuczka formatowania nie pomoże. Można jednak skorzystać z Text to columnsopcji konwersji notacji wykładniczej do tekstu (kliknij na nagłówek kolumny, kliknij przycisk Text to data, a następnie Delimited, Next, odznacz wszystkie pola separatora, wybrać Textw Column data formatczym Finish) mają wartości przekonwertowane na tekst i natychmiast wyświetlane jako liczby 15 cyfr. Będzie to jednak tylko 15 cyfr, więc jeśli miałbyś dłuższy numer, reszta zostanie utracona.

Aby numer znajdował się w arkuszu kalkulacyjnym dokładnie tak, jak został wpisany, musisz zapisać go jako tekst. Musisz więc poprzedzić go apostrofem lub sformatować komórki jako tekst przed wpisaniem / skopiowaniem do niego wartości. Jeśli to „czasem nie działa”, przepraszamy, albo robisz coś źle, albo masz jakieś autokorekty (jeśli używasz apostrofu i dużej liczby> 15 cyfr, Excel traktuje to jako niewłaściwą wartość i zaznacza komórkę z ostrzeżeniem wiadomość, więc ta uwaga nie ma charakteru osobistego ani krytyki).

Innym sposobem na wykonanie tego w liczbach zbiorczych jest import wartości z pliku tekstowego. Śmiem twierdzić, że to jedyny sposób na większość sytuacji. Pamiętaj, aby zaimportować plik, a nie tylko go otworzyć, ponieważ program Excel traktuje csvtyp tekstu jako jego format macierzysty i przycina duże liczby do 15 cyfr.

Teraz do ostatniego wydania. Jeśli wpiszesz dużą wartość liczbową w komórce Excel sformatowanej jako tekst, będzie ona nadal wyświetlana w notacji naukowej, dopóki komórka nie będzie wystarczająco szeroka. To denerwujące, ale efekt uboczny niektórych wewnętrznych algorytmów Excela. Po prostu powiększ komórkę, a za każdym razem zobaczysz pełną wartość.

AcePL
źródło
3

Excel 2010: Działa to jedna kolumna na raz, a wcale nie dla wiersza. Wybierz kolumnę lub podzbiór kolumny, na karcie Dane wybierz „Tekst do kolumn” i przeskocz w prawo do „Zakończ”. Nigdy więcej notacji naukowej.

Zgadzam się z wieloma użytkownikami Excela, przestępstwem jest to, że nie ma opcji, aby zapobiec notacji naukowej!

gsoClarke
źródło
1
W teście na Excel 2007 musiałem Next >dwukrotnie kliknąć , a następnie wybrać „Tekst” i kliknąć Finish. Możesz zastosować to do wierszy, transponując, konwertując i transponując z powrotem.
Scott,
1

W programie Excel 2013 to samo mi się przydarzyło i po prostu poszedłem do Formatuj komórki -> Liczba, a następnie upewniłem się, że miejsce dziesiętne jest ustawione na „0”.

Christopher Chipps
źródło
1
podobnie jak w przypadku powyższej odpowiedzi Anonimowej, ale wybranie „Numeru” ma w jakiś sposób większy sens niż wybranie „niestandardowego” .. plus jest wyżej na liście. w każdym razie robi to samo, ale bardziej mi się podoba
billynoah
0

Zaznacz wszystkie komórki - lub, aby ułatwić - zaznacz cały arkusz kalkulacyjny i kliknij opcję Formatuj komórki , a następnie Tekst .

Automatycznie cały arkusz kalkulacyjny użyje tekstu. Nie musisz tego robić komórka po komórce.

Dima
źródło
Niestety, to nie działa. Tekst będzie tylko w notacji naukowej, to jest cały problem ...
Joris Meys,
0
  1. Skopiuj / wklej pole problemu do nowego arkusza w kolumnie A

  2. Skopiuj / wklej kolumnę A do pliku tekstowego

  3. Sformatuj kolumnę B do tekstu i wklej plik tekstowy do kolumny B

  4. W kolumnie C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Konwertuj kolumnę C na format liczbowy bez miejsc po przecinku

  6. Skopiuj / wklej kolumnę C do pliku tekstowego

  7. Sformatuj kolumnę D w tekście i wklej plik tekstowy do kolumny D

  8. W kolumnie E:

    =IF(IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2))=0,"",IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2)))
    
  9. Skopiuj / wklej kolumnę E do notatnika

  10. Usuń dane w polu problemu i sformatuj kolumnę do tekstu

  11. Skopiuj / wklej dane z pliku tekstowego do pola problemu

DataWizard
źródło
0

Działa to dla mnie w programie Excel 2013, w tym kopiowanie i wklejanie komórek do innych programów. Filtrowanie danych pomogło, szczególnie w przypadku kroków edycji.

  1. Wybierz żądane komórki.
  2. Zastosuj format liczbowy „Tekst”. (Spróbuj Alt, H, N, a następnie „Tekst”.)

Następnie dla każdej pożądanej komórki:

  1. Wejdź do trybu edycji. (Spróbuj F2.)
  2. Potwierdź zmianę za pomocą Enter (dobre dla kolumn) lub Tab (dobre dla wierszy). Nie zmieniaj zawartości.

Twój numer pojawi się normalnie, nawet przy 100 cyfrach. =)

skia.heliou
źródło
Nie działa dla wielu komórek (Excel 365)
Albin
0

Excel jest frustrujący, ponieważ CSV / dane zbiorcze działają w ten sposób. Pracuj z LibreOffice, jeśli to możliwe, nie robi tego, to znaczy, jeśli otworzysz ten sam arkusz (.xlsx) w Libreoffice, duże „liczby”, które są tak naprawdę ciągami znaków, nie są wyświetlane w notacji naukowej (co jest absurdalną decyzją Excel). Wierność plików LibreOffice jest świetna: ponownie otwórz ten sam plik .xlsx w programie Excel, a notacja naukowa natychmiast „działa” tak jak zwykle.

Tim Richardson
źródło