Jak zatrzymać automatyczne konwertowanie wartości 0503E000 na 5.03E + 02 w programie Excel?


22

Excel konwertujący wartość 0503E000 na 5.03E + 02 w dowolnej komórce automatycznie w CSV Próbowałem przekonwertować go na numer tekstowy i ogólnie, ale po zapisaniu go i ponownym otwarciu wraca do 5.03E + 02

Jak temu zapobiec?


wystarczy zmienić rozmiar kolumny i powinna być wyświetlana normalnie
Scorpion99

Czy próbowałeś sformatować komórkę jako tekst przed wprowadzeniem tekstu?
CharlieRB

próbował
zmienić

Jeśli musisz użyć wartości jako liczby szesnastkowej (tzn. Nie możesz mieć jej jako ciągu tekstowego), możesz zagnieździć DEC2HEXi HEX2DECciągi znaków dla oryginalnej liczby (np. W =DEC2HEX(HEX2DEC("0503E000"))twoim przykładzie). Może to nie pomóc, jeśli trzeba manipulować plikiem csv bez formuł, ale jest to inna opcja niż formatowanie jako tekst.
Myles,

Odpowiedzi:


16

Myślę, że kluczową kwestią tutaj jest to, że używasz CSV, który nie ma wbudowanego typu komórki. Excel automatycznie próbuje interpretować komórkę jako posiadające szereg naukowych, dlatego widzisz 5.03E + 02 zamiast 0503E000 .

Spróbuj utworzyć skoroszyt programu Excel i sformatować wszystkie komórki jako tekst, a następnie wkleić dane. Próbowałem w programie Excel 2013 i zadziałało.


Tak, działa w skoroszycie, ale niestety musimy do tego celu użyć CSV ... szkoda
CrashOverride

Więc nie używaj Excela do przeglądania zawartości ani nie uruchamiaj makra na komórce, aby przekonwertować go z powrotem, lub użyj nieco innej składni, jeśli użyłeś 0x przed wartością, która według mnie nie przekonwertowałaby
Ramhound

Myślę, że możemy to odłożyć ... ponieważ jeśli otworzymy go w innym edytorze, takim jak notatnik lub notatnik ++, ma on prawidłową wartość ... więc myślę, że komórka ma prawidłową wartość, po prostu wyświetlając ją niepoprawnie w notacji naukowej ....
CrashOverride,

26

Jeśli możesz przekonwertować lub kontrolować format CSV , możesz zmusić kolumnę do parsowania jako tekstu w programie Excel, zawijając go w podwójne cudzysłowy i przygotowując znak równości.

Excel niedbale odrzuci precyzję w tym formacie:

Value,0503E000,1234123412341234

Lub nawet ten format:

Value,"0503E000","1234123412341234"

Konwertowanie go na:

Value  |  5.03E+02  |  1234123412341230

Jednak dodanie znaku równości zmusza Excela do niechętnej ochrony danych:

Value,="0503E000",="1234123412341234"

… Który otwiera się jako:

Value  |  0503E000  |  1234123412341234

1
Świetne rozwiązanie podczas wklejania z SQL
SeaSprite

1
Świetne rozwiązanie również do importowania danych za pomocą „Pobierz dane zewnętrzne” w menu „Dane” programu Excel.
Mohsen Abasi,

1
Świetne rozwiązanie. Jedyną (małą) wadą jest to, że skończysz na formułach zamiast wartości. Więc po prostu skopiuj wszystko, a następnie wklej wartości , co doprowadzi do nieco mniejszego pliku Excel.
Stef

9

Zamiast otwierać plik CSV w programie Excel, wybierz opcję Importuj plik (w programie Excel 2007-2010 przejdziesz do wstążki danych / Pobierz dane zewnętrzne / z tekstu). Nie jestem pewien co do roku 2013, ale powinno być coś podobnego. Kiedy po wykonaniu tej czynności otworzy się kreator importu tekstu, który umożliwi sformatowanie kolumny zawierającej tę wartość jako tekst, zanim program Excel (nie tak pomocnie) zmieni ją na wartość liczbową.


1
To. Prawie nigdy nie otwieram bezpośrednio plików CSV.
pepoluan

@poluolu Nie rozumiem, co napisałeś.
Ron Rosenfeld,

Której części dokładnie nie rozumiesz?
pepoluan

4
@pepoluan Thanks. Gdybym zrozumiał this, reszta byłaby jasna. Zgaduję, że się starzeję :-(
Ron Rosenfeld,

1
Miałem nadzieję, że użycie „tego” jako pełnego zdania umarłoby szybką śmiercią, ale 4 lata później jest tak silne, jak zawsze.
wariant

2

Uruchom komórkę apostrofem, aby wymusić interpretację tekstu:

'0502E000

Zasadniczo mówi to programowi Excel, aby nie analizował pola jako liczby. Ponieważ w polu znajduje się „E”, wygląda to jak liczba w Excelu. Apostrof nie zostanie faktycznie wprowadzony do komórki:

[a1] '0502E000
[b1] =hex2dec(a1)

Komórka „b1” wyświetli 84074496.


2
Działa to podczas wprowadzania bezpośrednio w programie Excel, ale nie w przypadku pliku CSV.
SBF

Podczas otwierania pliku csv apostrof faktycznie zostanie wprowadzony do komórki
Stef

0

Spróbuj załadować plik (dane pobrane z tabeli DB) za pomocą opcji DANE w MS Excel, a następnie po prostu wybierz „Nie wykrywaj typów danych” w „Wykrywanie typów danych”, a następnie załaduj, to zachowa taki format jako format danych i ładuje się doskonale, nie ma potrzeby żadnych konwersji kolumn.


0

Wklej dane do arkusza kalkulacyjnego Google. Wybierz kolumnę ==> Format ==> Liczba => Format niestandardowy => wpisz liczbę cyfr, z którymi chcesz sformatować format (np. 10 cyfr = 0000000000)


Chciałbym zasugerować lepiej Edytuj swój post ,, ponieważ muszę dodać kilka przykładów !!
Rajesh S

-1

Przy domyślnym formatowaniu komórek liczby z zerami na początku i długimi liczbami będą automatycznie modyfikowane przez program Excel. Na przykład, jeśli wpiszesz 012, zostanie zmieniony na 12.

Jeśli sformatujesz komórki jako Tekst , dowolna liczba wpisana w komórce pozostanie taka, jaka jest i nie zostanie zmodyfikowana przez program Excel.

Jeśli jednak wkleisz liczbę z innego źródła do komórki sformatowanej jako Tekst , a w źródle istnieje dowolne formatowanie, formatowanie komórki zmieni się z Tekst na Ogólne , a manipulacja liczbami powróci.

Rozwiązaniem, które znalazłem, było zrobienie specjalnego wklejania i wklejenie numeru jako Tekst . Następnie komórka pozostaje z formatowaniem tekstu , a liczba w ogóle nie jest modyfikowana.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.