Come posso impedire ad Excel di convertire automaticamente il valore 0503E000 in 5.03E + 02?


22

Excel convertendo il valore 0503E000 in 5.03E + 02 in qualsiasi cella automaticamente in CSV Ho provato a convertirlo in numero di testo e generale ma dopo averlo salvato e riaperto, torna a 5.03E + 02

Come posso impedire che ciò accada?


ridimensiona la larghezza della colonna e dovrebbe essere visualizzata normalmente
Scorpion99

Hai provato a formattare la cella come testo prima di inserire il testo?
CharlieRB,

ho

Se è necessario utilizzare il valore come numero esadecimale (ovvero non è possibile utilizzarlo come stringa di testo), è possibile nidificare DEC2HEXe HEX2DECstringhe per il numero originale (ad es. =DEC2HEX(HEX2DEC("0503E000"))Per il proprio esempio). Potrebbe non essere utile se è necessario manipolare il file CSV senza che contenga formule, ma è un'altra opzione oltre alla formattazione come testo.
Myles,

Risposte:


16

Penso che il problema chiave qui sia che stai usando un CSV, che non ha il tipo di cella incorporato in esso. Excel tenta automaticamente di interpretare la cella con un numero scientifico, motivo per cui viene visualizzato 5.03E + 02 anziché 0503E000 .

Prova a creare una cartella di lavoro di Excel e a formattare tutte le celle come testo, quindi a incollare i dati. L'ho provato in Excel 2013 e ha funzionato.


Sì, funziona nella cartella di lavoro, ma sfortunatamente dobbiamo usare CSV per questo scopo ..... peccato
CrashOverride

Quindi non usare Excel per visualizzare i contenuti, o eseguire una macro sulla cella, per riconvertirla o utilizzare una sintassi leggermente diversa se si utilizza 0x prima del valore che non credo possa convertire
Ramhound

Penso che dovremmo licenziarlo ... perché se lo apriamo in un altro editor come notepad o notepad ++ ha il valore corretto .... quindi penso che la cella abbia il valore corretto mostrandola semplicemente in modo strano nella notazione scientifica ....
CrashOverride,

26

Se puoi convertire o controllare il formato CSV , puoi forzare l'analisi di una colonna come testo in Excel racchiudendola tra virgolette doppie e anteponendo un segno di uguale.

Excel scarterà negligentemente la precisione in questo formato:

Value,0503E000,1234123412341234

O anche questo formato:

Value,"0503E000","1234123412341234"

Convertendolo in:

Value  |  5.03E+02  |  1234123412341230

Tuttavia , l'aggiunta del segno di uguale impone a Excel di conservare a malincuore i tuoi dati:

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

... che si apre come:

Value  |  0503E000  |  1234123412341234

1
Ottima soluzione quando si incolla da SQL
SeaSprite il

1
Ottima soluzione anche per l'importazione di dati tramite "Ottieni dati esterni" nel menu "Dati" di Excel.
Mohsen Abasi,

1
Ottima soluzione L'unico (piccolo) inconveniente è che finirai con le formule anziché i valori. Quindi basta copiare tutto e quindi incollare i valori , il che porterà a un file Excel leggermente più piccolo.
Stef

9

Invece di aprire "il file CSV in Excel, selezionare Importa il file (in Excel 2007-2010 si passa alla barra multifunzione dei dati / Ottieni dati esterni / Dal testo). Non si è sicuri del 2013 ma dovrebbe esserci qualcosa di simile. Quando lo fai, la procedura guidata di importazione del testo si aprirà e ti darà l'opportunità di formattare la colonna contenente quel valore come testo, prima che Excel (non tanto utile) lo cambi in un valore numerico.


1
Questo. Non apro quasi mai direttamente i file CSV.
pepoluan,

@pepoluan Non capisco cosa hai scritto.
Ron Rosenfeld,

Quale parte esattamente non capisci?
pepoluan,

4
@pepoluan Grazie. Se avessi capito this, il resto sarebbe stato chiaro. Suppongo che sto invecchiando :-(
Ron Rosenfeld,

1
Speravo che l'uso di "questo" come frase completa sarebbe morto in una morte rapida, ma 4 anni dopo, è più forte che mai.
variante

2

Inizia la cella con un apostrofo per forzare l'interpretazione del testo:

'0502E000

Fondamentalmente, questo dice a Excel di non analizzare il campo come un numero. Perché c'è una 'E' nel campo, sembra un numero a Excel. L'apostrofo non verrà effettivamente inserito nella cella:

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

La cella 'b1' visualizzerà 84074496.


2
Funziona quando si entra direttamente in Excel, ma non con il file CSV.
SBF

Quando si apre un file CSV, l'apostrofo verrà effettivamente inserito nella cella
Stef

0

Prova a caricare il file (dati recuperati dalla tabella DB) tramite l'opzione DATA in MS Excel, quindi semplicemente durante il caricamento seleziona semplicemente "Non rilevare i tipi di dati" in "Rilevamento del tipo di dati", quindi carica, questo manterrà il file come formato di dati e carica Excel, non sono necessarie conversioni di colonne.


0

Incolla i dati in un foglio di calcolo di Google. Seleziona la colonna ==> Formato ==> Numero => Formato personalizzato => digita il numero di cifre in cui vuoi che si verifichi il formato (es: 10 cifre = 0000000000)


Vorrei suggerire di meglio Modifica il tuo post, poiché è necessario aggiungere alcuni esempi !!
Rajesh S,

-1

Con la formattazione di cella predefinita, i numeri con uno zero davanti e i numeri lunghi verranno automaticamente modificati da Excel. Ad esempio, se si digita 012, verrà modificato in 12.

Se si formattano le celle come testo , qualsiasi numero digitato nella cella rimarrà così com'è e non verrà modificato da Excel.

Tuttavia, se si incolla un numero da un'altra sorgente in una cella formattata come Testo e nella sorgente è presente un qualsiasi tipo di formattazione, la formattazione della cella cambierà da Testo a Generale e la manipolazione dei numeri tornerà.

La soluzione che ho trovato è stata quella di fare un incolla speciale e incollare il numero come testo . Quindi la cella rimane con la sua formattazione del testo e il numero non viene modificato affatto.

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.