2017-07-14 3 views
1

j'ai données dans une feuille de calcul décrivant la quantité de données transférées via un réseau mobile: les données dans une colonne (plus de 300 lignes) a trois formes possibles: - 123,45KB - 123,45MB - 1,23GBLibreOffice Calc: comment utiliser les numéros présents sous forme de texte avec différents préfixes d'unités dans les calculs

Comment puis-je transformer ou utiliser ces données pour additionner ou faire d'autres calculs sur des nombres correctement?

+0

Je crois que vous avez mal interprété le problème. Si vous avez déjà les données "123,45 Ko", "123,45 Mo", "1,23 Go" dans les cellules d'une feuille, alors ces données sont du texte et non numériques. Donc, "pour les résumer ou faire d'autres calculs", un format ** ** ne peut pas aider. Au lieu de cela, il est nécessaire de transformer les données de texte en données numériques. –

+0

Vous avez raison. J'ai supposé que je devais formater les cellules en nombres d'une façon ou d'une autre afin de faire des calculs, mais le but final - echievable via différentes méthodes - est de faire une somme (ou d'autres calculs) à partir des données présentes. J'ai édité la question et le titre. –

Répondre

1

En supposant que vos données sont dans la colonne A et il y a toujours deux caractères comme unité (« KB », « MB » ou « Go ») à la fin, la formule pour transformer les données à numérique pourrait être:

=--LEFT(A2;LEN(A2)-2)*10^(IF(RIGHT(A2;2)="KB";3;IF(RIGHT(A2;2)="MB";6;IF(RIGHT(A2;2)="GB";9)))) 

Résultat:

enter image description here

Mettre la formule dans B2 et remplir vers le bas selon les besoins.

Je pensais que le délimiteur décimal dans vos paramètres régionaux est une virgule. Si non, veuillez préciser ce que c'est.

De plus, puisque ce site est en anglais, j'ai utilisé des noms de fonctions en anglais. Peut-être que vous avez besoin de les traduire dans votre version linguistique.

Si le délimiteur décimal dans votre environnement local est et non, vous devez remplacer la virgule par votre séparateur décimal pour obtenir une valeur décimale numérique appropriée.

Par exemple, si le séparateur décimal est point, puis:

=SUBSTITUTE(LEFT(A2,LEN(A2)-2),",",".")*10^(IF(RIGHT(A2,2)="KB",3,IF(RIGHT(A2,2)="MB",6,IF(RIGHT(A2,2)="GB",9)))) 
+0

merci @AxelRichter, mais cela ne fonctionne pas. ça me donne #VALUE! Erreur. si je vais pas à pas: '= GAUCHE (A2, LEN (A2) -2)' produit un résultat valide, mais quand j'ajoute un '* 10', il renvoie une erreur. cela signifie-t-il que ce qui est produit par LEFT n'est pas (encore) un nombre? –

+0

@Nova deViator: Comme je l'ai dit, je pensais que le délimiteur décimal dans vos paramètres régionaux est une virgule. Si le délimiteur décimal dans vos paramètres régionaux n'est pas une virgule, vous devez remplacer la virgule par votre délimiteur décimal. Voir mon supplément. –

+0

Voici une capture d'écran: https://imagebin.ca/v/3TSBoQjdXmH8 –

0

Une formule alternative:

=LEFT(A1,LEN(A1)-2)*10^(3*MATCH(RIGHT(LEFT(A1,LEN(A1)-1)),{"K","M","G"},0)) 

Utilise la position du côté de dernier caractère dans un tableau pour déterminer le facteur.