Pourquoi Excel considère-t-il les longues chaînes numériques comme une notation scientifique, même après avoir modifié le format de cellule en texte?

118

J'essaie de traiter certaines données dans Excel. Les données comprennent des numéros de compte numériques et d'autres chaînes numériques longues (telles que les MEID de téléphones portables). Je ne fais pas d'opérations mathématiques sur ces chaînes, alors je veux qu'Excel les traite comme du texte brut.

Voici ce qui me rend dingue (c'est Excel 2010):

  1. Prenez un numéro long comme 1240800388917 et collez-le dans une cellule d'une nouvelle feuille de calcul.
  2. Le format de cellule par défaut d'Excel est général. La chaîne est donc présentée en notation scientifique sous la forme 1.2408E + 12.
  3. Faites un clic droit sur la cellule, sélectionnez Format des cellules, définissez le format sur Texte.

La cellule est toujours affichée en notation scientifique, même si le format a été défini sur texte.

Maintenant, si je fais les étapes dans un ordre différent:

  1. Formatez une cellule vide en tant que texte. Faites un clic droit sur la cellule, sélectionnez Format des cellules, définissez le format sur Texte.
  2. Prenez un nombre long comme 1240800388917 et collez-le dans la cellule de texte mis en forme.

Maintenant, la cellule est affichée sous forme de chaîne et non en notation scientifique.

Les résultats restent en notation scientifique même si la cellule est formatée en texte me semble brisée. J'ai déjà vu des solutions de contournement telles que: utiliser l'importation CSV et définir le format sur texte, ajouter un espace au début de chaque chaîne numérique, etc.

Existe-t-il un moyen simple et efficace de conserver facilement ces chaînes au format texte?

Pourquoi Excel fait-il cela?

Questions SU correspondantes que j'ai trouvées: comment faire en sorte qu'Excel 2007 arrête de formater de grands nombres en notation scientifique? et Est-ce que ce comportement Excel avec un grand nombre d’hexagones est prévu?

Michael Levy
la source
Le numéro long 1240800388917est copié d'une autre cellule? Ou simplement du texte brut, comme dans le Bloc-notes?
Wilson

Réponses:

24

Ah, des souvenirs de données remontant à l'époque où j'avais procédé à une vérification croisée de nombres dans Excel (plus jamais). Lorsque vous introduisez de longues chaînes numériques dans Excel, essayez de dire, 12345678901234567890 (20 chiffres), Excel le convertira généralement pour vous. , ce qui signifie que le nombre de 20 chiffres que vous venez de saisir a été réduit à une quinzaine de chiffres significatifs.

Notez également: la conversion est une troncature, par opposition à un arrondi. (12345678901234567890 est 1.2345678901234 6 E + 19, mais Excel vous montrera 1.2345678901234 5 E + 19)

Cela se produit au point d'entrée. Ainsi, une fois entré, tout détail supplémentaire est perdu. Ainsi, même si vous dites à Excel que vous vouliez vraiment dire qu'il s'agissait d'un texte, et non d'un nombre, vous êtes un peu en manque de chance, et par conséquent pourquoi votre première séquence ne fonctionne pas.

tanantish
la source
1
Oui, je constate ce comportement lorsque ma chaîne numérique comporte plus de 15 chiffres significatifs. 12345678901234567890 devient 1.23456789012345E + 19 comme vous le dites. Lorsque je clique sur la cellule, la zone d'édition affiche la chaîne tronquée et complétée de zéros sous la forme 12345678901234500000. Ce qui est étrange, c'est qu'elle fait la même chose pour les nombres qui ne dépassent pas la limite de 15 chiffres d'Excel. Si je colle 12345678901234, il est affiché sous la forme 1.23457E + 13, mais lorsque je clique dessus, la zone d'édition affiche toujours la chaîne d'origine. Ce qui est étrange, c’est que si je formate cette cellule en texte, cela reste affiché en notation scientifique. Ennuyeux.
Michael Levy
7
En fait, il s’agit d’un problème d’affichage. Régler le format de général en texte ne le montrera pas immédiatement comme la chaîne originale, mais si vous entrez et éditez les données (en tant que telles, cliquez dans la zone d’édition et cliquez ) ça va mettre à jour pour être exactement ce que vous mettez dans.
Tanantish
11
Quick Hack: Définissez le formatage sur les colonnes appropriées, copiez-collez dans le bloc-notes, puis dans Excel.
Brian
9
Cela ne devrait PAS être la réponse acceptée : voir la suivante ci-dessous.
javadba
3
Donc, vous avez rappelé et réitéré le problème. Maintenant, comment corrigez-vous cela?
user3932000
163

Cela a fonctionné pour moi dans Excel 2010. Il suffit de sélectionner la colonne, cliquer avec le bouton droit de la souris, Mettre en forme les cellules, Personnaliser et choisir l'option qui dit 0 (deuxième option sous Général).

Anonyme
la source
25
C'est tellement mieux que la réponse acceptée qui dit "tu n'as pas de chance"! J'avais un fichier CSV qui posait ce problème et la solution de formatage personnalisé fonctionnait parfaitement.
davidair
4
doit être accepté réponse, quelqu'un devrait / pourrait changer?
Qwertzman
11
Cela semble encore tronquer dans mon test. À l'aide d'Excel 2013, j'ai saisi les informations suivantes dans une cellule 12345678901234567890. Lorsque j'appuie sur Entrée, ce message s'affiche sous la forme 1.23457E + 19 et la valeur sous-jacente est remplacée par 12345678901234500000, ce qui entraîne une perte de données. Cela ne répond pas à la question initiale.
Michael Levy
1
Un an plus tard, je reviens sur la même réponse et je souhaite pouvoir la revérifier.
Billynoah
7
Cette réponse corrige la mise en forme, mais ne conserve pas les données entrées. C'est pourquoi je ne peux pas l'accepter comme une réponse correcte. J'ai posté une courte vidéo à montrer. Lorsque vous suivez ces instructions, puis que vous entrez un entier long comme 12345678901234567890, vous perdez en précision si vous le traitez comme numérique, même s'il est affiché dans une notation non scientifique. Excel la traite comme la valeur 12345678901234500000. Ce n'est qu'en la traitant comme du texte que vous pouvez conserver tous les chiffres. Voir le youtu.be/7EDcR7TQpYs
Michael Levy le
13

Une simple apostrophe 'devant un nombre obligera Excel à traiter un nombre sous forme de texte (y compris un alignement à gauche par défaut). Et si vous avez des erreurs marquées, cela affichera un nombre stocké comme erreur de texte sur la cellule.

dav
la source
Ce n'est pas toujours le cas. Excel a parfois accumulé mes données même avec une apostrophe majeure.
Cerin
3
Cerin, un bon point - ne jamais sous-estimer la capacité d'Excel (ou de Microsoft) à faire quelque chose de complètement inexplicable ou répétable. Cependant, l’astuce apostrophe fonctionne généralement comme annoncé.
dav
1
pouvez-vous faire cela en vrac? J'ai des données avec 60000 cellules que je veux convertir en texte.
vaibhavcool20
Ou choisissez simplement de formater en tant que texte avec le clic droit, menu Format Cells;)
Shayan
13

J'ai constaté que dans Office 2010, si vous formatez d'abord la colonne, puis collez les données, les grands nombres seront affichés correctement.

M Akin
la source
C'est probablement parce qu'il est stocké sous forme de chaîne. Qu'advient-il si vous faites une autre cellule être, par exemple, le contenu de la cellule multiplié par 2?
Peter Mortensen
1
Cela fonctionne dans Excel 2016 / Office 365. J'ai sélectionné toutes les cellules, les ai formatées en texte, puis ai collé mes données copiées, sans que la notation scientifique gênante ne s'affiche. Merci!
frezq
Ce qui a également fonctionné pour moi dans Google Sheets ... "Format> Number> 0" avant de coller dans vals et n'a pas été converti en notation scientifique tout en ne perdant PAS les valeurs finales (arrondi des valeurs de vals), ce qui se produisait trop souvent .
twknab
12

Essayez ceci ... ça marche pour moi, Excel 2013.

=""&a1

où a1 contient la valeur numérique. Ensuite, copiez la colonne et collez-la dans la colonne d'origine.

Rok
la source
Cela fonctionne également dans Excel 2010.
Paul G
2
En tant que nœud latéral: ="1240800388917"fait de même
nixda
5

Vous pouvez formater les cellules en tant que Personnalisé> #

Cela peut être appliqué après avoir collé les données dans la colonne, mais vous devez le faire avant de sauvegarder la feuille de calcul.

Je travaille beaucoup avec les codes à barres (UPC) et Excel les formatera par défaut en notation scientifique. Ça me rend fou! Pourquoi ce n'est pas une option que je ne saurai jamais.

Graham
la source
Cela ne transforme cependant pas les chiffres en texte, ce qui peut poser problème par la suite. Mais bon ...
Joris Meys
5

Je connais l'âge de la question, mais c'est celle que j'ai trouvée après la recherche sur Google et qui n'a pas répondu à ma question (pourquoi le formatage en tant que texte ne fonctionne pas et pourquoi le nombre est réduit à 15 chiffres après le format écrire un SMS).

La réponse courte est: vous ne pouvez pas travailler sur votre numéro comme vous le souhaitez APRÈS que vous ayez entré la valeur numérique et tapé dessus Enter. Au moment où vous faites cela, le nombre sera tronqué à 15 chiffres et présenté de manière exponentielle.

Ce n'est pas un bug, c'est une fonctionnalité.

Tout ce que vous ferez après utilisera la valeur tronquée, aucune astuce de formatage ne vous aidera. Cependant, vous pouvez utiliser l' Text to columnsoption pour convertir la notation exponentielle au texte (Cliquez sur en- tête de colonne, cliquez sur Text to data, puis Delimited, Next, décocher toutes les cases de délimiteur, sélectionnez Textdans Column data formatpuis Finish) pour avoir les valeurs converties en texte et immédiatement affiché comme numéro à 15 chiffres. Mais ce ne sera que 15 chiffres, donc si vous avez un numéro plus long, le repos est perdu.

Pour avoir le numéro dans la feuille de calcul exactement comme vous l'avez saisi, vous devez le stocker sous forme de texte. Vous devez donc le faire précéder d'apostrophe ou formater les cellules en tant que texte avant de taper / copier des valeurs dans celui-ci. Si cela "ne fonctionne parfois pas", alors, désolé, vous faites quelque chose de mal ou vous avez une sorte de correction automatique (si vous utilisez une apostrophe et un grand nombre supérieur à 15 chiffres, Excel le traite comme une valeur incorrecte et marque la cellule avec un avertissement message, donc cette remarque n’est pas personnelle ni critique).

Une autre façon de le faire en gros est d’importer des valeurs depuis un fichier texte. J'ose dire que c'est le seul moyen pour la plupart des situations. Et assurez-vous d'importer le fichier, pas seulement de l'ouvrir, car Excel considère csvcomme son format natif et ajuste naturellement les grands nombres à 15 chiffres.

Passons maintenant au dernier numéro. Si vous entrez une grande valeur numérique dans une cellule Excel formatée en texte, celle-ci sera toujours affichée en notation scientifique tant que la cellule n'est pas suffisamment large. C'est ennuyeux, mais l'effet secondaire de certains algorithmes internes d'Excel. Faites simplement une cellule plus large et vous verrez la valeur totale à chaque fois.

AcePL
la source
3

Excel 2010: Cela fonctionne une colonne à la fois et pas du tout pour une ligne. Sélectionnez la colonne ou le sous-ensemble d'une colonne, dans l'onglet Données, sélectionnez "Texte en colonnes" et passez directement à "Terminer". Plus de notation scientifique.

Je suis d’accord avec les nombreux utilisateurs d’Excel, c’est criminel qu’il n’y ait aucune option pour empêcher la notation scientifique!

GsoClarke
la source
1
Lors de mon test sur Excel 2007, je devais cliquer Next >deux fois, puis sélectionner «Texte» et cliquer Finish. Vous pouvez appliquer cela aux lignes en transposant, en convertissant et en transposant en arrière.
Scott
1

Dans Excel 2013, il m'est arrivé la même chose et je suis simplement allé dans Format Cells -> Number, puis je me suis assuré que la décimale est définie sur "0".

Christopher Chipps
la source
1
similaire à la réponse anonyme ci-dessus mais la sélection du numéro est plus logique que la sélection du choix, plus elle est en haut de la liste. en tout cas, ça fait la même chose mais j'aime mieux ça
Billynoah,
0

Sélectionnez toutes les cellules - ou, pour simplifier les choses, sélectionnez l'intégralité de la feuille de calcul, puis cliquez sur Formater les cellules , puis sur Texte .

Automatiquement, votre feuille de calcul entière utilisera du texte. Vous n'êtes pas obligé de le faire cellule par cellule.

Dima
la source
Hélas, ça ne marche pas. Le texte sera juste en notation scientifique, c'est tout le problème ...
Joris Meys
0
  1. Copier / coller le champ du problème dans la nouvelle feuille de la colonne A

  2. Copier / coller la colonne A dans un fichier texte

  3. Formater la colonne B en texte et coller le fichier texte dans la colonne B

  4. Dans la colonne C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Convertir la colonne C en un format numérique sans décimales

  6. Copier / coller la colonne C dans un fichier texte

  7. Formater la colonne D en texte et coller le fichier texte dans la colonne D

  8. Dans la colonne 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. Copier / coller la colonne E dans le bloc-notes

  10. Supprimer les données dans le champ du problème et formater la colonne en texte

  11. Copier / coller des données d'un fichier texte dans un champ problématique

Assistant de données
la source
0

Cela a fonctionné pour moi dans Excel 2013, y compris le copier-coller des cellules vers d'autres programmes. Filtrer les données a aidé, en particulier pour les étapes d'édition.

  1. Sélectionnez la ou les cellules souhaitées.
  2. Appliquez le format numérique "Texte". (Essayez Alt, H, N, puis "Texte".)

Ensuite, pour chacune de vos cellules désirées:

  1. Entrer en mode édition. (Essayez F2.)
  2. Confirmez votre modification avec Entrée (bon pour les colonnes) ou Tab (bon pour les lignes). Ne modifiez pas le contenu.

Votre numéro apparaîtra normalement, même à 100 chiffres. =)

skia.heliou
la source
Ne fonctionne pas pour plusieurs cellules (Excel 365)
Albin
0

Excel est frustrant pour un travail de données en bloc / CSV comme celui-ci. Si possible, travaillez avec LibreOffice, c’est-à-dire que si vous ouvrez la même feuille (.xlsx) dans Libreoffice, les grands «nombres» qui sont en réalité des chaînes ne sont pas affichés en notation scientifique (ce qui est une décision absurde). par Excel). La fidélité des fichiers de LibreOffice est excellente: ouvrez à nouveau le même fichier .xls dans Excel, et la notation scientifique "fonctionnera" instantanément, comme d'habitude.

Tim Richardson
la source