Perché Excel tratta le stringhe numeriche lunghe come notazioni scientifiche anche dopo aver modificato il formato della cella in testo


118

Sto cercando di elaborare alcuni dati in Excel. I dati includono numeri di conto numerici e altre stringhe numeriche lunghe (come i MEID dei telefoni cellulari). Non sto eseguendo operazioni matematiche su queste stringhe, quindi voglio che Excel le tratti come un semplice testo.

Ecco cosa mi sta facendo impazzire (questo è Excel 2010):

  1. Prendi un numero lungo come 1240800388917 e incollalo in una cella in un nuovo foglio di lavoro.
  2. Il formato di cella predefinito di Excel è generale, quindi la stringa è presentata in notazione scientifica come 1.2408E + 12
  3. Fare clic con il tasto destro sulla cella, selezionare Formato celle, impostare il formato su Testo

La cella è ancora visualizzata in notazione scientifica, anche se il formato è stato impostato su testo.

Ora, se eseguo i passaggi in un ordine diverso:

  1. Formatta una cella vuota come testo. Fare clic con il tasto destro sulla cella, selezionare Formato celle, impostare il formato su Testo
  2. Prendi un numero lungo come 1240800388917 e incollalo nella cella formattata con il testo

Ora, la cella viene visualizzata come una stringa e non in notazione scientifica.

I risultati rimangono nella notazione scientifica anche se la cella è formattata come testo mi sembra solo rotta. Ho visto soluzioni alternative come: usare l'importazione CSV e impostare il formato su testo, aggiungere uno spazio all'inizio di ogni stringa numerica e altri.

Esiste un semplice buon lavoro per mantenere facilmente queste stringhe formattate come testo?

Perché mai Excel fa questo?

Domande SU correlate che ho trovato: Come si può fare in modo che Excel 2007 smetta di formattare grandi numeri come notazione scientifica? e è previsto questo comportamento di Excel con un numero esadecimale elevato?


Il numero lungo 1240800388917viene copiato da un'altra cella? O solo testo semplice, come da Blocco note?
Wilson,

Risposte:


24

Ah, ricordi di dati che risalgono a quando ho fatto un enorme controllo incrociato dei numeri in Excel (mai più). Quando si inseriscono stringhe numeriche lunghe in Excel, prova a dire 12345678901234567890 (20 cifre), Excel generalmente lo converte per te , il che significa che il numero di 20 cifre che hai appena inserito è stato ridotto a solo una quindicina di cifre significative.

Nota anche: la conversione è un troncamento, al contrario dell'arrotondamento. (12345678901234567890 è 1.2345678901234 6 E + 19, ma Excel ti mostrerà 1.2345678901234 5 E + 19)

Ciò si verifica al punto di entrata, quindi una volta inserito, tutti i dettagli aggiuntivi vengono persi, quindi anche se dici a Excel che intendevi davvero che era un testo, e non un numero, sei un po 'sfortunato, e quindi perché la tua prima sequenza non funziona.


1
Sì, vedo quel comportamento quando la mia stringa numerica ha più di 15 cifre significative. 12345678901234567890 diventa 1.23456789012345E + 19 come dici tu. Quando faccio clic sulla cella, la casella di modifica mostra la stringa troncata e riempita di zeri come 12345678901234500000. Ciò che è strano è che fa la stessa cosa per i numeri che non traboccano del limite di 15 cifre di Excel. Se incollo in 12345678901234, viene visualizzato come 1.23457E + 13, ma quando faccio clic su di esso la casella di modifica mostra ancora la stringa originale. Ora, ciò che è strano è se formatto questa cella in testo, mostra ancora in notazione scientifica. Fastidioso.
Michael Levy,

7
Quello in realtà è un po 'una stranezza di visualizzazione: l'impostazione del formato dal generale al testo non lo mostrerà immediatamente come stringa originale, ma se entri e modifichi i dati (come in, fai clic nell'area di modifica e fai clic su ) verrà aggiornato per essere esattamente quello che hai inserito.
tanantish

11
Attacco rapido: imposta la formattazione su colonne appropriate, copia incolla sul blocco note, quindi su Excel.
Brian,

9
Questa NON DEVE ESSERE LA RISPOSTA ACCETTATA : vedi la seguente di seguito.
Javavba,

3
Quindi hai ricordato e reiterato il problema. Ora, come lo risolvi?
user3932000,

163

Questo ha funzionato per me in Excel 2010. Basta selezionare la colonna, fare clic con il tasto destro, Formatta celle, Personalizza e scegliere l'opzione che dice 0 (seconda opzione sotto Generale).


25
Questo è molto meglio della risposta accettata che dice "sei un po 'sfortunato"! Ho avuto un file CSV che ha avuto questo problema e la soluzione di formattazione personalizzata ha funzionato perfettamente.
davidair,

4
deve essere accettata la risposta, qualcuno dovrebbe / potrebbe cambiare?
qwertzman,

11
Questo sembra ancora troncarsi nel mio test. Utilizzando Excel 2013 ho inserito quanto segue in una cella 12345678901234567890. Quando premo invio, questo viene visualizzato come 1.23457E + 19 e il valore sottostante viene modificato in 12345678901234500000, quindi si verifica una perdita di dati. Questo non risponde alla domanda originale.
Michael Levy,

1
Eccomi un anno dopo rivisitare la stessa risposta e desiderare di poterla votare nuovamente.
Billynoah,

7
Questa risposta corregge la formattazione, ma non conserva i dati inseriti. Ecco perché non posso accettarlo come risposta corretta. Ho pubblicato un breve video da mostrare. Quando segui queste indicazioni e inserisci un numero intero lungo come 12345678901234567890, perdi la precisione quando lo consideri come numerico, anche se viene visualizzato in notazione non scientifica. Excel lo considera come il valore 12345678901234500000. Solo trattandolo come testo è possibile mantenere tutte le cifre. Vedi youtu.be/7EDcR7TQpYs
Michael Levy,

13

Un singolo apostrofo "prima di un numero costringerà Excel a trattare un numero come testo (incluso un allineamento a sinistra predefinito). E se hai errori contrassegnati, verrà mostrato come un numero memorizzato come errore di testo nella cella.


Questo non è sempre il caso. Excel a volte ha mescolato i miei dati anche con un apostrofo principale.
Cerin,

3
Cerin, un punto equo, mai sottovalutare la capacità di Excel (o Microsoft) di fare qualcosa di completamente inspiegabile o ripetibile. Tuttavia, il trucco dell'apostrofo generalmente funziona come pubblicizzato.
dav

1
puoi farlo alla rinfusa? Ho dati con 60000 celle che voglio convertire in testo.
vaibhavcool20,

O semplicemente scegli di formattare come testo con il tasto destro del mouse, menu Formato celle;)
Shayan

13

Ho scoperto che in Office 2010, se si formatta prima la colonna e quindi si incolla nei dati, verranno visualizzati correttamente i numeri grandi.


Ciò è probabilmente dovuto al fatto che è memorizzato come stringa. Cosa succede se fai diventare un'altra cella, diciamo, il contenuto della cella moltiplicato per 2?
Peter Mortensen,

1
Funziona in Excel 2016 / Office 365. Ho selezionato tutte le celle, le ho formattate in Testo, quindi ho incollato i miei dati copiati e non sono stati mostrati con la fastidiosa notazione scientifica. Grazie!
frezq,

Questo è ciò che ha funzionato anche per me in Fogli Google ... "Formato> Numero> 0" prima di incollare in vals e non si è convertito in notazione scientifica, anche NON perdendo i valori finali (arrotondamento per difetto di val), che stava accadendo troppo spesso .
twknab,

12

Prova questo ... questo funziona per me, Excel 2013.

=""&a1

dove a1 contiene il valore numerico. Successivamente, copia la colonna e incollala nella colonna originale.


Funziona anche con Excel 2010.
Paul G

2
Come nodo laterale: ="1240800388917"fa lo stesso
nixda,

5

Puoi formattare le celle come personalizzate> #

Questo può essere applicato dopo aver incollato i dati nella colonna, ma è necessario farlo prima di salvare il foglio di calcolo.

Lavoro molto con i codici a barre (UPC) e Excel li formatterà come notazione scientifica per impostazione predefinita. Mi fa impazzire! Perché questa non è un'opzione che non saprò mai.


Ciò non trasforma i numeri in testo, ma ciò può causare problemi in seguito. Ma bene ...
Joris Meys l'

5

Sono a conoscenza dell'età della domanda, ma questa è quella su cui sono arrivato dopo la ricerca su Google e che non ha risposto alla mia domanda (perché la formattazione come testo non funziona e perché il numero viene ridotto a 15 cifre dopo la formattazione al testo).

La risposta breve è: non puoi lavorare sul tuo numero come preferisci DOPO aver inserito il valore numerico e toccato Enter. Nel momento in cui lo fai, il numero verrà troncato a 15 cifre e presentato come esponenziale.

Questo non è un bug, è una funzionalità.

Qualunque cosa tu faccia dopo utilizzerà il valore troncato, quindi nessun trucco di formattazione ti aiuterà. Tuttavia, è possibile utilizzare l' Text to columnsopzione per convertire la notazione esponenziale in testo (fare clic sull'intestazione della colonna, fare clic su Text to data, quindi Delimited, Nextdeselezionare tutte le caselle delimitatore, selezionare Textin Column data formate quindi Finish) per convertire i valori in testo e visualizzarli immediatamente come numero di 15 cifre. Ma saranno solo 15 cifre, quindi se avessi un numero più lungo, il resto andrà perso.

Per avere il numero nel foglio di calcolo esattamente come lo hai digitato, devi memorizzarlo come testo. Quindi devi precederlo con apostrofo o formattare le celle come testo prima di digitare / copiare i valori in esso. Se "a volte non funziona", quindi, scusa, o fai qualcosa di sbagliato o hai una sorta di correzione automatica attivata (se usi l'apostrofo e un numero elevato> 15 cifre, Excel lo considera come un valore errato e contrassegna la cella con un avviso messaggio, quindi questa osservazione non è personale né critica).

Un altro modo per farlo in grandi quantità è importare valori da file di testo. Oserei dire che è l'unico modo per la maggior parte delle situazioni. E assicurati di importare il file, non solo di aprirlo, poiché Excel considera il csvtipo come il suo formato nativo e taglia i numeri grandi a 15 cifre come ovvio.

Ora, fino all'ultimo numero. Se si immette un valore numerico elevato nella cella di Excel formattata come testo, verrà comunque visualizzato in notazione scientifica purché la cella non sia sufficientemente ampia. È fastidioso, ma effetto collaterale di alcuni algoritmi interni di Excel. Basta allargare la cella e vedrai sempre il pieno valore.


3

Excel 2010: funziona una colonna alla volta e per niente per una riga. Seleziona la colonna o il sottoinsieme di una colonna, dalla scheda Dati seleziona "Testo in colonne" e passa a destra fino a "Fine". Niente più notazione scientifica.

Sono d'accordo con i molti utenti di Excel, è criminale che non ci sia alcuna opzione per prevenire la notazione scientifica!


1
Nel mio test su Excel 2007, ho dovuto fare Next >doppio clic , quindi selezionare "Testo" e fare clic Finish. Puoi applicarlo alle righe trasponendo, convertendo e trasponendo.
Scott,

1

In Excel 2013, mi è successa la stessa cosa e sono passato a Formato celle -> Numero, quindi ho verificato che il decimale sia impostato su "0".


1
simile alla risposta anonima sopra ma selezionando "Numero" in qualche modo ha più senso che selezionare "personalizzato" .. in più è più in alto nell'elenco. comunque, fa la stessa cosa ma mi piace di più
billynoah

0

Seleziona tutte le celle o, per semplificare le cose, seleziona l'intero foglio di calcolo e fai clic su Formato celle , quindi su Testo .

Automaticamente, l'intero foglio di calcolo utilizzerà il testo. Non devi farlo cella per cella.


Purtroppo, questo non funziona. Il testo sarà solo in notazione scientifica, questo è l'intero problema ...
Joris Meys,

0
  1. Copia / incolla il campo problematico nel nuovo foglio nella colonna A

  2. Copia / incolla la colonna A in un file di testo

  3. Formatta la colonna B per testo e incolla il file di testo nella colonna B

  4. Nella colonna C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Converti la colonna C in un formato numerico senza decimali

  6. Copia / incolla la colonna C in un file di testo

  7. Formatta la colonna D in testo e incolla il file di testo nella colonna D

  8. Nella colonna 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. Copia / incolla la colonna E nel blocco note

  10. Elimina i dati nel campo problematico e formatta la colonna in testo

  11. Copia / incolla i dati dal file di testo al campo problematico


0

Questo ha funzionato per me in Excel 2013, incluso il copia-incolla delle celle su altri programmi. Il filtro dei dati ha aiutato, specialmente per i passaggi di modifica.

  1. Seleziona le celle desiderate.
  2. Applica il formato numerico "Testo". (Prova Alt, H, N, quindi "Testo".)

Quindi, per ciascuna delle celle desiderate:

  1. Entra in modalità modifica. (Prova F2.)
  2. Conferma la modifica con Invio (buono per le colonne) o Tab (buono per le righe). Non alterare il contenuto.

Il tuo numero apparirà normalmente, anche a 100 cifre. =)


Non funziona per più celle (Excel 365)
Albin

0

Excel è frustrante per CSV / dati in blocco funzionano in questo modo. Lavora con LibreOffice se possibile, non lo fa, cioè se apri lo stesso foglio (.xlsx) in Libreoffice, i grandi 'numeri' che sono in realtà stringhe non vengono visualizzati nella notazione scientifica (che è una decisione assurda da Excel). La fedeltà dei file di LibreOffice è eccezionale: apri di nuovo lo stesso .xlsx in Excel e la notazione scientifica "istantaneamente" funziona come al solito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.