2015-01-07 20:44:09 +0000 2015-01-07 20:44:09 +0000
22
22
Advertisement

Jak powstrzymać program Excel przed automatyczną konwersją wartości 0503E000 na 5.03E+02?

Advertisement

Excel konwertuje wartość 0503E000 na 5.03E+02 w dowolnej komórce automatycznie w CSV Próbowałem przekonwertować ją na tekst numeryczny i ogólny, ale po zapisaniu i ponownym otwarciu wraca do 5.03E+02

Jak temu zapobiec?

Advertisement
Advertisement

Odpowiedzi (7)

27
27
27
2015-01-08 05:58:13 +0000

Jeśli potrafisz konwertować lub kontrolować format CSV, możesz zmusić kolumnę do parsowania jako tekst w Excelu poprzez zawinięcie jej w podwójne cudzysłowy i poprzedzenie znakiem równości.

Excel będzie beztrosko odrzucał precyzję w tym formacie:

Value,0503E000,1234123412341234

Albo nawet w tym formacie:

Value,"0503E000","1234123412341234"

Przekształcając go na:

Value | 5.03E+02 | 1234123412341230

Jednakże dodanie znaku równości zmusza Excela do błagalnego zachowania Twoich danych:

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

…co otwiera się jako:

Value | 0503E000 | 1234123412341234
16
16
16
2015-01-07 21:21:02 +0000

Myślę, że kluczowym problemem jest to, że używasz CSV, który nie ma wbudowanego typu komórki. Excel automatycznie próbuje zinterpretować komórkę jako posiadającą liczbę naukową, co jest powodem, dla którego 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 tego w programie Excel 2013 i zadziałało.

9
Advertisement
9
9
2015-01-08 02:35:42 +0000
Advertisement

Zamiast Otworzyć plik CSV w Excelu, wybierz Import pliku (w Excelu 2007-2010 przeszedłbyś do Wstążki danych / Pobierz dane zewnętrzne / Z tekstu). Nie jestem pewien co do 2013, ale powinno być coś podobnego. Kiedy to zrobisz, otworzy się kreator importu tekstu i da Ci możliwość sformatowania kolumny zawierającej tę wartość jako tekst, zanim Excel (nie tak pomocnie) zmieni ją na wartość numeryczną.

2
2
2
2015-01-08 07:16:27 +0000

Rozpocznij komórkę od apostrofu, aby wymusić interpretację tekstową:

'0502E000

Zasadniczo mówi to Excelowi, aby nie parsował pola jako liczby. Ponieważ w polu znajduje się ‘E’, dla Excela wygląda ono jak liczba. Apostrof w rzeczywistości nie zostanie wpisany do komórki:

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

Komórka ‘b1’ wyświetli 84074496.

0
Advertisement
0
0
2019-07-26 20:41:40 +0000
Advertisement

Wklej dane do arkusza kalkulacyjnego google. Wybierz kolumnę ==> Format ==> Liczba ==> Format niestandardowy ==> wpisz liczbę cyfr, do której chcesz formatować (np.: 10 cyfr = 00000000)

0
0
0
2019-02-27 15:40:33 +0000

Spróbuj załadować plik (dane pobrane z tabeli DB) poprzez opcję DATA w MS Excel, a następnie po prostu podczas ładowania wybierz “Nie wykrywaj typów danych” pod “Wykrywanie typów danych”, a następnie załaduj, to zachowa format danych i załaduje Excel, nie ma potrzeby konwersji kolumn.

-1
Advertisement
-1
-1
2017-02-07 18:34:08 +0000
Advertisement

Przy domyślnym formatowaniu komórek, liczby z zerem przed i długie liczby będą automatycznie modyfikowane przez Excel. Na przykład, jeśli wpiszesz 012, zostanie ona zmieniona na 12.

Jeśli sformatujesz komórki jako Tekst, to każda liczba, którą wpiszesz do komórki, pozostanie taka, jaka jest, i nie zostanie zmodyfikowana przez Excela.

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

Rozwiązaniem, które znalazłem, było zrobienie wklejenia specjalnego i wklejenie liczby jako Text. Wtedy komórka pozostaje ze swoim formatowaniem Text, a liczba nie jest w ogóle modyfikowana.

Advertisement

Pytania pokrewne

17
6
13
9
10
Advertisement
Advertisement