web-dev-qa-db-fra.com

Comment convertir du texte en chiffres?

J'ai un rapport Excel qui contient plusieurs colonnes de texte et plusieurs colonnes de nombres qui sont stockés sous forme de texte.

Existe-t-il un moyen simple de convertir les nombres stockés sous forme de texte en nombres, sans affecter les données textuelles réelles?

20
sds

Je trouve que le moyen le plus simple et le plus rapide de convertir des "nombres stockés sous forme de texte" en nombres numériques est

  1. Sélectionnez une cellule vide
  2. Copier cette cellule (Ctrl + C)
  3. Sélectionnez la plage contenant les données que vous voulez convertir (c'est correct si la plage inclut également des données non numériques)
  4. Utilisez "Collage spécial" avec l'opération "add" (je suppose que "soustraire" fonctionnerait aussi)

En plus d'être rapide, cela a l'avantage de convertir en place.

"Collage spécial" figure dans le menu Edition des versions "classiques" d'Excel (2003 et versions antérieures) ou dans la section Presse-papiers de l'onglet Accueil des versions "ruban" d'Excel (2007+).

30
John Y

Utilisez la fonction VALUE si vous voulez simplement que ce texte soit un nombre dans une cellule différente.

11
Daniel DiPaolo

Une autre solution consiste à ajouter un zéro pour forcer une conversion de type: si la cellule A1 contient «5», ISNUMBER (A1) renvoie FALSE, ISNUMBER (A1 + 0) renvoie TRUE si A1 peut contenir un cas.

3
Jeff

Les autres réponses ne m'ont pas aidé, mais j'ai découvert qu'au moins dans Excel 2010 (je suppose que ce serait similaire dans les autres versions), vous pouvez utiliser le petit triangle vert en haut à gauche des cellules affectées. les a choisis.

Cela ne vous dit cependant pas que pour que cela fonctionne avec plusieurs cellules, vous devez commencer votre sélection avec une cellule contenant un triangle vert. La dernière cellule peut être n'importe quelle cellule (la dernière cellule peut être n'importe quoi). Si vous commencez avec une cellule non verte, le point d'exclamation jaune n'apparaîtra jamais.

J'ai créé un tableau simple dans une feuille de calcul vide dans laquelle chaque cellule était convertie en texte via Format> Format Cell. J'ai ensuite entré les valeurs ci-dessous (j'ai marqué les lignes contenant des triangles verts avec ^ dans le diagramme).

  |  A  |  B  |
--------------
1 | abc |     |
2^| 1   |     |
3^| 2   |     |
4^| 3   |     |
5^| 4   |     |
6^| 5,6 |     |
7 | 7.8 |     |
8^| 9   |     |
9 | xyz |     |
--------------

Maintenant, vous devez commencer votre sélection en A2 ou A8 et faire glisser la sélection vers les autres cellules pour que cela fonctionne. À partir de A9 ou A1 ne fonctionne pas. Commencer entre les deux fonctionnerait, mais de cette façon, vous ne pouvez pas sélectionner toutes les cellules en une fois.

De plus, la reconnaissance des cellules peut dépendre de votre région. Pour les pays qui utilisent des points au lieu de virgules, les résultats peuvent varier (cellule A6 ou A7).

0
user121391

Voici la solution que j'ai trouvée pour la situation dans laquelle je me trouve.

J'exécute un rapport hebdomadaire qui nécessite de copier et coller environ 7 000 lignes de données exportées à partir d'un système. Récemment, des modifications ont été apportées afin que les numéros sortants soient stockés sous forme de texte. Les données comprennent une sélection d'entrées de texte réelles et les numéros restants stockés sous forme de texte. Ces données sont copiées et collées dans un modèle maître qui alimente ensuite d'autres feuilles/rapports, mais j'avais besoin que les numéros soient stockés sous forme de nombres. En raison du volume de données et du fait que je ne suis pas le seul à effectuer cette tâche (et que certaines des autres ne sont pas des experts d'Excel), je devais essayer d'automatiser ce processus. J'ai essayé la formule = A1 * 1 et cela a fonctionné pour les nombres, mais le texte m'a donné une #VALUE! Erreur. Après beaucoup de bidouillage, je suis venu avec la formule ci-dessous et cela fonctionne parfaitement! 

= SI (ET (A1 = "Oui"), "Oui", SI (ET (A1 = "Non applicable"), "Non applicable", SI (ET (A1 = "Non"), "Non", A1 * 1)))

0
KathyM

Impossible que ces solutions fonctionnent correctement avec une colonne mixte alphanumérique où les valeurs numériques sont du texte copié depuis une page Web. Un contributeur (D. Mabutt) sur About.com a posté ce code VBA

    Sub Enter_Values()
   For Each xCell In Selection
    xCell.Value = CDec(xCell.Value)
 Next xCell 
 End Sub

Ce code jettera une erreur sur les cellules alpha, il devrait donc être ajouté: 

Sub Enter_Values()
For Each xCell In Selection
If IsNumeric(xCell) = True Then
    xCell.Value = CDec(xCell.Value)
    Else
     End If
 Next xCell
End Sub
0
user3418162

Personnellement, s’il n’ya que quelques chiffres, il suffit d’appuyer sur la touche F2 de chaque cellule et d’appuyer sur Entrée, sans aucune modification. Cela donne à Excel l'impression que vous avez modifié la cellule et l'avez convertie en nombre.

0
Rob Sedgwick

Je ne suis pas sûr de comprendre votre dilemme, mais il y a au moins deux solutions à votre question immédiate:

  1. Formatez les cellules qui doivent être des nombres en tant que "nombre" par opposition à du texte. Vous pouvez mettre en surbrillance les cellules de votre choix -> clic droit -> Format en tant que nombre. Vous pouvez définir le nombre de mises en forme décimales et spécifiques à partir de là.

  2. Créez une nouvelle colonne qui multiplie votre colonne texte/nombre par 1 et définissez le format de cette nouvelle colonne en tant que nombre.

0
Chase