web-dev-qa-db-fra.com

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?

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 associées liées j'ai trouvé: Comment pouvez-vous faire Excel 2007 arrêter de formater de grands nombres comme notation scientifique? et Ce comportement Excel avec un grand nombre d'hexagones est-il prévu?

107
Michael Levy

Ah, les souvenirs de données remontant à l'époque où j'avais procédé à une vérification de nombre massive dans Excel (plus jamais). Lorsque vous introduisez de longues chaînes numériques dans Excel, essayez de dire, 12345678901234567890 (20 chiffres), Excel va généralement convertir cela 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.23456789012346E + 19, mais Excel vous montrera 1.23456789012345E + 19)

Cela se produit au point d’entrée. Ainsi, une fois dedans, tous les détails supplémentaires sont perdus. Ainsi, même si vous dites à Excel que vous vouliez vraiment dire que c’était du texte, et non un chiffre, vous n’êtes pas assez chanceux, et par conséquent pourquoi votre première séquence ne fonctionne pas.

21
tanantish

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 indiquant 0 (deuxième option sous Général).

150
Anonymous

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é en tant qu'erreur de texte dans la cellule.

13
dav

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.

12
M Akin

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.

11
Rok

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 bon vous semble APRÈS que vous ayez entré la valeur numérique et tapé 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'option Text to columns pour convertir la notation exponentielle en texte (cliquez sur l'en-tête de colonne, cliquez sur Text to data, puis sur Delimited, Next, décochez toutes les zones de délimiteur, sélectionnez Text dans Column data format, puis Finish) pour convertir les valeurs en texte et immédiatement. affiché sous forme de 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 la manière dont vous l'avez entré, 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 en tapant/en copiant les valeurs. 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 traite le type csv comme 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.

5
AcePL

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 formate par défaut en notation scientifique. Ça me rend fou! Pourquoi ce n'est pas une option que je ne saurai jamais.

5
Graham

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!

3
gsoClarke

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".

1
Christopher Chipps
  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

0
DataWizard

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. =)

0
skia.heliou

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.

0
Tim Richardson

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

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

0
Dima