XL 2019 conversion valeurs

gortex3D

XLDnaute Junior
Bonjour tout le monde

Voila j'ai la possibilité de récuperer des valeurs pour une liste de joueurs sous cette forme :


306.18K 687.59K
113.08K 202.03K
447.95K 170.93K
110.39K 775.24K
1.08M 11.18K
497.34K 5.37K

Le problème c'est que pour faire un tri c'est très compliqué.

J'aimerai donc savoir comment transformer un 306.18k en 306180 et un 1.08M en 1080000.

Pouvez vous m'aider? J'ai regardé avec la fonction recherche et remplace mais si je fais un remplace k par 000 je suis donc a 306.18000 ca ne donne pas la valeur reel.

Merci pour votre aide. A savoir que je souhaite faire sa sous google sheet si possible donc sans vba.
 

Gégé-45550

XLDnaute Accro
soit, si votre système utilise le point comme séparateur décimal : =SI(DROITE(A1;1)="K";CNUM(GAUCHE(A1;NBCAR(A1)-1))*1000;SI(DROITE(A1;1)="M";CNUM(GAUCHE(A1;NBCAR(A1)-1))*1000000;A1))

et si votre système utilise la virgule comme séparateur décimal :
=SI(DROITE(A1;1)="K";CNUM(SUBSTITUE(GAUCHE(A1;NBCAR(A1)-1);".";","))*1000;SI(DROITE(A1;1)="M";CNUM(SUBSTITUE(GAUCHE(A1;NBCAR(A1)-1);".";","))*1000000;A1))
 

jmfmarques

XLDnaute Accro
Bonjour à tous
gortex3D (le relire) ne parle pas de transposer dans d'autres cellules, mais de transformer in situ.
L'utilisation de VBA, dans un tel cas, s'avèrera nettement plus avantageuse et légère que celle de formules dans une plage "tremplin" (pour y "calculer" des résultats qu'il faudrait ensuite copier - par écrasement - dans la plage source avant de supprimer la plage tremplin !)
Exemple de traitement des cellules de la plage A1:B10 :
VB:
For Each C In Range("A1:B10")
 Select Case Right(C.Value, 1)
   Case "M"
     C.Value = Val(C.Value) * 1000000
   Case "K"
     C.Value = Val(C.Value) * 1000
 End Select
Next

 

gortex3D

XLDnaute Junior
Mon objectif c'est de mettre mon fichier sur google sheet donc pas de VBA.

J'ai essayé cette formule mais il m'indique valeur. Je ne comprend pas pourquoi j'ai 2 fois le = dans la formule d'ailleurs.

En tout cas merci pour l'aide
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

La formule proposée en "#3" semble donner le bon résultat.

Edit: Bonjour jmfmarques :) , notre ami n'a pas demandé un code VBA pour transformer directement dans la cellule source donc la formule de conversion fait, je pense, la transformation des données d'origine.
" J'ai regardé avec la fonction recherche et remplace mais si je fais un remplace k par 000 je suis donc a 306.18000 ca ne donne pas la valeur reelle"
On peut peut-être faire plus court:
VB:
=SUBSTITUE(SI(DROITE(A2;1)="K";SUBSTITUE($A2;"K";"0");SI(DROITE(A2;1)="M";SUBSTITUE($A2;"M";"0000");$A2));".";"")*1

JHA
 

Pièces jointes

  • Classeur Gortex3D.xlsx
    15.6 KB · Affichages: 7
Dernière édition:

gortex3D

XLDnaute Junior
Bonjour à tous,

La formule proposée en "#3" semble donner le bon résultat.

Edit: Bonjour jmfmarques :) , notre ami n'a pas demandé un code VBA pour transformer directement dans la cellule source donc la formule de conversion fait, je pense, la transformation des données d'origine.
" J'ai regardé avec la fonction recherche et remplace mais si je fais un remplace k par 000 je suis donc a 306.18000 ca ne donne pas la valeur reelle"
On peut peut-être faire plus court:
VB:
=SUBSTITUE(SI(DROITE(A2;1)="K";SUBSTITUE($A2;"K";"0");SI(DROITE(A2;1)="M";SUBSTITUE($A2;"M";"0000");$A2));".";"")*1

JHA

Ca marche super bien et j'ai compris pourquoi j'ai un soucis pour l'intégrer dans mes resultats.

En réalité devans mon

1.08M11.18K
j'ai un espace de présent. Forcement ca bloque les formules. Si je le supprime 1 à 1 pas de soucis.
Y aurait il un moyen pour modifier la formule et dire si il y a un espace devant le supprimer ?
 

Gégé-45550

XLDnaute Accro
Mon objectif c'est de mettre mon fichier sur google sheet donc pas de VBA.

J'ai essayé cette formule mais il m'indique valeur. Je ne comprend pas pourquoi j'ai 2 fois le = dans la formule d'ailleurs.

En tout cas merci pour l'aide
Bonjour,
Vérifiez bien quel est le séparateur décimal qu'utilise votre version de Google Sheets (le point ou la virgule). Google Sheets n'utilise pas forcément le même séparateur décimal que votre version d'Excel (celle installée sur votre machine) ; en effet Sheets opérera dans la langue d'origine de l'abonnement dont il dépend. Il est donc très possible que, par exemple, votre machine utilise la virgule comme séparateur décimal (mode français donc) et que Google Sheets utilise le point (mode anglo-saxon).
Donc une formule qui marchera sur votre machine peut ne pas marcher sur Google Sheets et vice-versa. C'est pourquoi je vous ai proposé deux formules en post #3, basées sur une donnée "source" en A1. Essayez de recopier la première dans Sheets et, si elle ne fonctionne pas, essayez la deuxième. Lorsque vous aurez trouvé celle qui marche, vous pourrez la transposer partout où vous en avez besoin.
Cdlt
 

Gégé-45550

XLDnaute Accro
Ca marche super bien et j'ai compris pourquoi j'ai un soucis pour l'intégrer dans mes resultats.

En réalité devans mon

1.08M11.18K
j'ai un espace de présent. Forcement ca bloque les formules. Si je le supprime 1 à 1 pas de soucis.
Y aurait il un moyen pour modifier la formule et dire si il y a un espace devant le supprimer ?
Bonjour,
Utilisez la fonction SUPPRESPACE.
par exemple => =SUPPRESPACE(lecontenudemacellule)
Donc, remplacez, dans les exemples du post #3 la valeur A1 par SUPPRESPACE(A1)

Cdlt
 

Discussions similaires

Réponses
2
Affichages
1 K

Statistiques des forums

Discussions
312 037
Messages
2 084 814
Membres
102 677
dernier inscrit
sergio2803