¿Por qué Excel trata las cadenas numéricas largas como notación científica incluso después de cambiar el formato de celda a texto?

118

Estoy tratando de procesar algunos datos en Excel. Los datos incluyen números de cuenta numéricos y otras cadenas numéricas largas (como los MEID de teléfonos celulares). No estoy haciendo operaciones matemáticas en estas cadenas, por lo que quiero que Excel las trate como texto sin formato.

Esto es lo que me está volviendo loco (esto es Excel 2010):

  1. Tome un número largo como 1240800388917 y péguelo en una celda en una nueva hoja de trabajo.
  2. El formato de celda predeterminado de Excel es general, por lo que la cadena se presenta en notación científica como 1.2408E + 12
  3. Haga clic derecho en la celda, seleccione Formato de celdas, establezca el formato en Texto

La celda todavía se muestra en notación científica, aunque el formato se haya establecido en texto.

Ahora, si hago los pasos en un orden diferente:

  1. Formatee una celda vacía como texto. Haga clic derecho en la celda, seleccione Formato de celdas, establezca el formato en Texto
  2. Tome un número largo como 1240800388917 y péguelo en la celda con formato de texto

Ahora, la celda se muestra como una cadena y no en notación científica.

Los resultados que quedan en notación científica a pesar de que la celda está formateada como texto simplemente me parece rota. He visto soluciones sugeridas como: usar la importación CSV y establecer el formato de texto, agregar un carácter de espacio al comienzo de cada cadena numérica y otros.

¿Existe un buen trabajo simple para mantener fácilmente estas cadenas formateadas como texto?

¿Por qué demonios hace esto Excel?

Preguntas SU relacionadas que encontré: ¿Cómo puede hacer que Excel 2007 deje de formatear números grandes como notación científica? y ¿Se espera este comportamiento de Excel con un gran número hexadecimal?

Michael Levy
fuente
¿El número largo 1240800388917se copia de otra celda? ¿O simplemente texto sin formato, como desde el Bloc de notas?
Wilson

Respuestas:

24

Ah, recuerdos de datos que se remontan a cuando realicé una verificación cruzada de números masivos en Excel (nunca más). Cuando ingrese cadenas numéricas largas en Excel, intente decir, 12345678901234567890 (20 dígitos), Excel generalmente lo convertirá por usted , lo que significa que el número de 20 dígitos que acaba de ingresar se ha reducido para que sea solo unas quince cifras significativas.

Tenga en cuenta también: la conversión es un truncamiento, a diferencia del redondeo. (12345678901234567890 es 1.2345678901234 6 E + 19, pero Excel le mostrará 1.2345678901234 5 E + 19)

Esto ocurre en el punto de entrada, por lo que una vez que está dentro, se pierde cualquier detalle adicional, por lo que incluso si le dice a Excel que realmente quiso decir que era texto, y no un número, no tiene suerte, y por eso Tu primera secuencia no funciona.

tanantish
fuente
1
Sí, veo ese comportamiento cuando mi cadena numérica tiene más de 15 dígitos significativos. 12345678901234567890 se convierte en 1.23456789012345E + 19 como usted dice. Cuando hago clic en la celda, el cuadro de edición muestra la cadena truncada y rellenada con ceros como 12345678901234500000. Lo extraño es que hace lo mismo para los números que no desbordan el límite de 15 dígitos de Excel. Si pego 12345678901234, se muestra como 1.23457E + 13, pero cuando hago clic en él, el cuadro de edición aún muestra la cadena original. Ahora, lo que es extraño es que si formateo esta celda en texto, todavía se muestra en notación científica. Molesto.
Michael Levy
77
Esa es una peculiaridad de visualización: configurar el formato de general a texto no lo mostrará inmediatamente como la cadena original, pero si entra y edita los datos (como en, simplemente haga clic en la zona de edición y haga clic fuera) ) se actualizará para ser exactamente lo que pones.
tanantish
11
Hack rápido: configure el formato en las columnas apropiadas, copie y pegue en el bloc de notas y luego en Excel
Brian
99
Esto NO DEBE SER LA RESPUESTA ACEPTADA : vea la siguiente a continuación.
Java
3
Entonces has recordado y reiterado el problema. Ahora, ¿cómo lo arreglas?
user3932000
162

Esto funcionó para mí en Excel 2010. Simplemente seleccione la columna, haga clic derecho, Formatear celdas, Personalizar y elija la opción que dice 0 (segunda opción debajo de General).

Anónimo
fuente
25
¡Esto es mucho mejor que la respuesta aceptada que dice "no tienes suerte"! Tenía un archivo CSV que tenía este problema, y ​​la solución de formato personalizada funcionaba perfectamente.
davidair
44
debe aceptarse respuesta, alguien debería / podría cambiar?
qwertzman
11
Esto todavía parece truncarse en mi prueba. Usando Excel 2013, ingresé lo siguiente en una celda 12345678901234567890. Cuando presiono enter, esto se muestra como 1.23457E + 19 y el valor subyacente se cambia a 12345678901234500000, por lo que hay pérdida de datos. Esto no responde a la pregunta original.
Michael Levy
1
Aquí estoy, un año después, revisando la misma respuesta y deseando poder volver a votarla.
billynoah
77
Esta respuesta corrige el formato, pero no conserva los datos ingresados. Es por eso que no puedo aceptarlo como una respuesta correcta. Publiqué un video corto para mostrar. Cuando sigue estas instrucciones y luego ingresa un número entero largo como 12345678901234567890, pierde precisión al tratarlo como numérico, incluso si se muestra en notación no científica. Excel lo trata como el valor 12345678901234500000. Solo tratándolo como texto puede mantener todos los dígitos. Vea youtu.be/7EDcR7TQpYs
Michael Levy el
13

Un solo apóstrofe 'antes de un número obligará a Excel a tratar un número como texto (incluida una alineación izquierda predeterminada). Y si tiene errores marcados, se mostrará como un número almacenado como error de texto en la celda.

dav
fuente
Este no es siempre el caso. Excel a veces ha alterado mis datos incluso con un apóstrofe principal.
Cerin
3
Cerin, un punto justo: nunca subestimes la capacidad de Excel (o Microsoft) de hacer algo completamente inexplicable o repetible. Sin embargo, el truco del apóstrofe generalmente funciona como se anuncia.
DAV
1
¿Puedes hacer esto a granel? Tengo datos con 60000 celdas que quiero convertir a texto.
vaibhavcool20
O simplemente elija formatear como texto haciendo clic con el botón derecho en el menú Formato de celdas;)
Shayan
13

Descubrí que en Office 2010, si formatea la columna primero y luego pega los datos, mostrará los números grandes correctamente.

M Akin
fuente
Eso es probablemente porque se almacena como una cadena. ¿Qué sucede si haces que otra celda sea, digamos, el contenido de la celda multiplicado por 2?
Peter Mortensen el
1
Esto funciona en Excel 2016 / Office 365. Seleccioné todas las celdas, las formateé en Texto y luego pegué mis datos copiados y no apareció con la molesta notación científica. ¡Gracias!
Frezq
Esto también funcionó para mí en las Hojas de cálculo de Google ... "Formato> Número> 0" antes de pegar en valles y no se convirtió a notación científica al tiempo que NO perdía valores finales (redondeando los valles), lo que ocurría con demasiada frecuencia .
twknab
12

Prueba esto ... esto funciona para mí, Excel 2013.

=""&a1

donde a1 contiene el valor numérico. Después, copie la columna y péguela en la columna original.

Rok
fuente
Esto también funciona en Excel 2010.
Paul G
2
Como nodo lateral: ="1240800388917"hace lo mismo
nixda
5

Puede formatear celdas como Personalizadas> #

Esto se puede aplicar después de pegar los datos en la columna, pero debe hacerlo antes de guardar la hoja de cálculo.

Trabajo mucho con códigos de barras (UPC) y Excel los formateará como notación científica por defecto. Me vuelve loco! Por qué esta no es una opción que nunca sabré.

Graham
fuente
Sin embargo, eso no transforma los números en texto, lo que puede causar problemas más adelante. Pero bueno ...
Joris Meys
5

Soy consciente de la antigüedad de la pregunta, pero esta es la que obtuve después de la búsqueda de Google y que no respondió a mi pregunta (por qué el formato como texto no funciona y por qué el número se reduce a 15 dígitos después del formato textear).

La respuesta corta es: no puede trabajar en su número de la manera que desee DESPUÉS de ingresar el valor numérico y tocar Enter. En el momento en que lo haga, el número se truncará a 15 dígitos y se presentará como exponencial.

Esto no es un error, es una característica.

Todo lo que haga después de eso utilizará el valor truncado, por lo que no será de utilidad ningún truco de formato. Sin embargo, puede utilizar la Text to columnsopción de convertir la notación exponencial a texto (Haga clic sobre el encabezado de la columna, haga clic en Text to datay, a continuación Delimited, Next, desactive todas las casillas de delimitador, seleccione Texten Column data formaty después Finish) para que los valores convertidos a texto y se muestra inmediatamente como el número de 15 dígitos. Pero solo tendrá 15 dígitos, por lo que si tiene un número más largo, el resto se pierde.

Para tener el número en la hoja de cálculo exactamente como lo escribió, debe almacenarlo como texto. Por lo tanto, debe precederlo con un apóstrofe o formatear celdas como texto antes de escribir / copiar valores en él. Si "a veces no funciona", entonces, lo siento, o haces algo mal o tienes algún tipo de autocorrección (si usas apóstrofo y un gran número> 15 dígitos, Excel lo trata como un valor incorrecto y marca la celda con advertencia) mensaje, por lo que esta observación no es personal ni crítica).

Otra forma de hacerlo en números masivos es importar valores del archivo de texto. Me atrevo a decir que es la única forma para la mayoría de las situaciones. Y asegúrese de importar el archivo, no solo abrirlo, ya que Excel trata el csvtipo como si fuera un formato nativo y, por supuesto, recorta números grandes a 15 dígitos.

Ahora, hasta el último número. Si ingresa un valor numérico grande en la celda de Excel formateada como texto, todavía se mostrará en notación científica siempre que la celda no sea lo suficientemente ancha. Es molesto, pero es un efecto secundario de algunos algoritmos internos de Excel. Simplemente amplíe la celda y verá el valor total cada vez.

AcePL
fuente
3

Excel 2010: esto funciona una columna a la vez y nada para una fila. Seleccione la columna o subconjunto de una columna, en la pestaña Datos, seleccione "Texto a columnas" y salte a la derecha a "Finalizar". No más notación científica.

Estoy de acuerdo con los muchos usuarios de Excel, ¡es criminal que no haya una opción para evitar la notación científica!

gsoClarke
fuente
1
En mi prueba en Excel 2007, tuve que hacer clic Next >dos veces, luego seleccionar "Texto" y hacer clic Finish. Puede aplicar esto a filas transponiendo, convirtiendo y volviendo a transponer.
Scott
1

En Excel 2013, me pasó lo mismo y simplemente fui a Formato de celdas -> Número y luego me aseguré de que el lugar decimal esté establecido en "0".

Christopher Chipps
fuente
1
similar a la respuesta anónima anterior, pero seleccionar "Número" de alguna manera tiene más sentido que seleccionar "personalizado" ... además, está más arriba en la lista. de todos modos, hace lo mismo pero me gusta más esto
billynoah
0

Seleccione todas las celdas o, para facilitar las cosas, seleccione toda la hoja de cálculo y haga clic en Formatear celdas , luego en Texto .

Automáticamente, toda su hoja de cálculo usará texto. No tienes que hacerlo celda por celda.

Dima
fuente
Por desgracia, esto no funciona. El texto solo estará en notación científica, ese es todo el problema ...
Joris Meys
0
  1. Copiar / pegar el campo del problema en una nueva hoja en la columna A

  2. Copie / pegue la columna A en el archivo de texto

  3. Formatee la columna B para texto y pegue el archivo de texto en la columna B

  4. En la columna C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Convierta la columna C a un formato de número sin decimales

  6. Copie / pegue la columna C en el archivo de texto

  7. Formatee la columna D en texto y pegue el archivo de texto en la columna D

  8. En la columna 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. Copie / pegue la columna E en el bloc de notas

  10. Eliminar datos en el campo del problema y formatear la columna en texto

  11. Copiar / pegar datos del archivo de texto al campo del problema

DataWizard
fuente
0

Esto funcionó para mí en Excel 2013, incluyendo copiar y pegar las celdas en otros programas. El filtrado de los datos ayudó, especialmente para los pasos de edición.

  1. Seleccione su (s) celda (s) deseada (s).
  2. Aplicar el formato de número "Texto". (Pruebe Alt, H, N, luego "Texto").

Luego, para cada una de sus celdas deseadas:

  1. Ingrese al modo de edición. (Prueba F2.)
  2. Confirme su edición con Enter (bueno para columnas) o Tab (bueno para filas). No alterar los contenidos.

Su número aparecerá normalmente, incluso con 100 dígitos. =)

skia.heliou
fuente
No funciona para varias celdas (Excel 365)
Albin
0

Excel es frustrante para el trabajo de CSV / datos masivos como este. Trabaje con LibreOffice si es posible, no hace esto, es decir, si abre la misma hoja (.xlsx) en Libreoffice, los grandes 'números' que en realidad son cadenas no se muestran en notación científica (lo cual es una decisión absurda por Excel). La fidelidad de archivo de LibreOffice es excelente: abra el mismo .xlsx en Excel nuevamente, y la notación científica al instante "funciona" como siempre.

Tim Richardson
fuente