Comment arrêter Excel du formatage automatique et le faire fonctionner comme un programme de calcul de nombres


20

J'ai un vrai problème avec Excel dans les fichiers csv où il met en forme des nombres de certaines manières et je n'arrive pas à obtenir qu'Excel affiche les données correctement quoi que je fasse.

Imaginez que j'ai une colonne appelée "Référence produit". Dans cette colonne, j'ai de nombreux ID du type:

  • 001145
  • 55666
  • 02133

Chaque fois que j'ouvre le fichier Excel, il formate ces nombres pour qu'ils soient:

  • 1145
  • 55666
  • 2133

Ce qui est totalement faux. Lorsque je sélectionne la colonne et la formate en tant que texte, les 0 précédents au début des nombres ne reviennent pas.

Pour tenter de résoudre ce problème, j'ai même fait d'abord du fichier csv un fichier texte, puis j'ai importé le fichier dans Excel et lui ai spécifiquement dit de ne pas formater les nombres en le faisant au format texte lors de l'importation, mais il formate toujours les mauvais nombres lorsque je ferme et ouvrez-le à nouveau car csv ne peut pas définir de types, donc Excel enregistre automatiquement le fichier en tant que pure ordure.

Quelqu'un a-t-il trouvé un moyen de contourner cela et pourrait-il m'aider?

Merci,


Pour autant que je sache, la seule façon d'obtenir Excel pour restituer fidèlement un CSV est de l'importer sous forme de texte, comme vous l'avez décrit.
Excellll

Vous n'avez pas besoin de faire du CSV un fichier texte. La fonction Importer à partir d'un fichier texte fonctionne également pour les fichiers CSV. Il vous suffit de spécifier que vous avez des délimiteurs de virgule.
Excellll

Réponses:


20

Vous devez spécifier dans le fichier csv qu'il s'agit de texte. Pour ce faire, mettez votre numéro entre guillemets et précédez avec un signe égal, par exemple:

="001145",="55666",="02133"

La façon la plus simple de le faire serait de faire un find-replace sur ,avec ",=", en remplaçant la fin des lignes (vous devrez peut-être utiliser un éditeur avancé comme Notepad ++ pour cela) avec "\r\n="et en faisant le début et la fin du fichier manuellement.


Nice :) Je vais essayer et faire un rapport
Sammaye

11
  1. Modifiez l'extension du fichier .csv en ".txt" sur le fichier avec lequel vous rencontrez des problèmes.
  2. Ouvrez Excel par lui-même. Ne cliquez pas sur le fichier pour l'ouvrir.
  3. Cliquez sur "Ouvrir", changez les types de fichiers à rechercher de "Tous les fichiers Excel" à "Tous les fichiers"
  4. Trouvez votre fichier et cliquez sur Ouvrir. Comme Excel ne met pas automatiquement en forme txt, il vous guidera ensuite à travers l'assistant.
  5. S'assure que le bouton radio "Délimité" est sélectionné. Cliquez sur le bouton "suivant".
  6. Cochez la case délimiteur "virgule" et continuez à appuyer sur le bouton "Suivant" jusqu'à ce que vous VOYEZ (mais ne cliquez pas dessus) le bouton Terminer.
  7. faites défiler chaque colonne de la feuille de calcul, mettez en surbrillance chaque colonne que vous souhaitez formater manuellement et changez le format en "texte".
  8. Cliquez sur le bouton Terminer.

C'est un bon moyen de résoudre le problème sans tracas.
Jack

Tu m'as sauvé la journée!
dinesh ygv

2

Installez OpenOffice à partir d'Oracle et faites de même avec le format CSV d'OpenOffice et cela fonctionne.

J'ai eu ce problème dans Windows 7 Pro avec Excel 2010. J'étais capable de copier des contacts Outlook vers Excel, d'enregistrer au format CSV et d'importer vers Gmail et Android (les numéros de mobile avec des zéros en tête et des signes +).


1

Cliquez avec le bouton droit sur les cellules contenant vos données, puis cliquez sur l' entrée de menu Formater les cellules ... Ensuite, dans le premier onglet ("Numéro"), changez la catégorie de Général en Texte . Cela empêchera Excel de formater automatiquement ces cellules sous forme de nombres, et donc de supprimer les zéros en tête (qui n'ont aucun sens dans le contexte de l'analyse numérique, mais sont très significatifs lorsqu'il s'agit d'ID de produit).

Si les données sont importées et analysées sous forme de nombres, vous devez utiliser l'assistant d'importation de données et définir chaque type de colonne sur "Texte" au lieu de "Général". Ensuite, faites la même chose avec les cellules, puis enregistrez votre classeur Excel.


Les fichiers CSV ne conservent pas le formatage. Ça ne va pas aider.
Excellll

@Excellll évidemment, c'est juste un tas de caractères ASCII séparés par des virgules. Par défaut , Excel marque les formats de cellule comme Général et tente d'interpréter la valeur (nombres, dates, n'importe quoi) afin qu'elle puisse être utilisée avec des formules (comme le texte brut ne le fait généralement pas). Vous devez dire manuellement à Excel d'interpréter la valeur comme du texte brut afin qu'il ne la convertisse pas automatiquement.
Percée

Oui, cela fonctionnerait si Excel ne sauvegardait pas automatiquement la mise en forme des champs :( J'ai besoin qu'Excel agisse de la même manière que tout autre ouvreur CSV / langage de programmation.
Sammaye

J'ai essayé cela, Excel le rétablit par défaut lorsque vous ouvrez le fichier Excel converti. Donc, j'importe de TXT vers Excel et je lui dis de s'afficher sous forme de texte, de fermer le fichier et de l'ouvrir et Excel revient par défaut au format numérique pour les champs cachant leur vraie valeur et je suis de retour à sq one.
Sammaye

@Breakthrough, désolé de ne pas avoir exprimé ce que je voulais dire. Comme vous l'avez dit dans votre commentaire, lorsqu'un CSV est ouvert dans Excel, Excel appliquera une mise en forme générale à toutes les données. À ce stade, le texte (c'est-à-dire les zéros non significatifs) qui est réellement enregistré dans le fichier CSV ne peut pas être récupéré par Excel. Le fait est qu'une fois que vous avez ouvert le CSV dans Excel, il est trop tard pour changer la mise en forme.
Excellll

1

cliquez sur la cellule sur laquelle vous souhaitez conserver les zéros en tête, puis: clic droit> Formater les cellules> personnalisé> 0> tapez le nombre total qui doit être dans la cellule comme: Si j'ai besoin de 00001234, je mettrai 00000000 comme nombre de zéro, tout ce qui lui dit de faire est de mettre un nombre total de 8 dans la cellule, j'ai déjà 1234, donc cela fera la différence avec 4 autres zéro de tête.

Je l'utilise quotidiennement pour importer des feuilles de calcul.


0

Pour ajouter à la réponse de @ Jon à cette question, j'avais un fichier CSV qui avait plusieurs colonnes qui avaient des zéros de tête et des nombres plus longs qui perdraient le zéro de tête ou convertiraient le nombre long en notation scientifique, ou les deux, lors de l'importation.

La seule façon de résoudre le problème était de formater d'abord toutes les cellules de la feuille vide Texten utilisant les étapes suivantes:

  1. Sélectionnez toutes les cellules de la feuille:

entrez la description de l'image ici

  1. Modifiez le format de chaque cellule:

entrez la description de l'image ici

Après avoir formaté toutes les cellules de la feuille Text, je pourrais importer le CSV en procédant comme suit:

  1. Dans l' Dataonglet, cliquez sur From Text:

entrez la description de l'image ici

  1. Sélectionnez votre fichier .txtou .csvet cliquez surImport

  2. Sélectionnez Delimitedet cliquez sur `Suivant:

entrez la description de l'image ici

  1. Sélectionnez le délimiteur approprié (j'ai choisi Comma) et désélectionnez tous les autres qui ne s'appliquent pas, puis cliquez sur Next:

entrez la description de l'image ici

  1. Faites défiler vers la droite pour trouver la ou les colonnes qui doivent être formatées de manière Textà conserver les zéros de tête et à empêcher la notation scientifique. Cliquez sur la colonne (elle doit s'assombrir), puis sélectionnez Textdans la liste d'options. Assurez-vous de sélectionner toutes les colonnes qui doivent être correctement formatées:

entrez la description de l'image ici

  1. Cliquez ensuite Finish. Si vous faites défiler les colonnes que vous avez mises en forme, vous verrez que tous les zéros en tête sont conservés et que les longues chaînes de nombres ne sont pas en notation scientifique.

J'espère que cela pourra aider!


0

Si les données ont été générées à l'aide de SQL. L'ajout d'un caractère de tabulation à la valeur numérique qui doit être empêchée de tronquer devrait fonctionner.

-- Oracle PL/SQL
select "01234567890123456" || chr(9) from dual;
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.