Le problème est alors de récupérer les valeurs de façon qu'elles soient utilisables par Excel :
En fait, ce but peut être atteint à l’aide d’une formule unique Voici la formule que nous avons entrée en B2 et recopiée jusqu’en B4 : =1*substitue(substitue(A2;",";"");".";",")
Cette formule élimine les
virgules puis remplace le point éventuel par une virgule. La multiplication par
« 1 » transforme le texte ainsi obtenu en valeur, car il est plus simple de faire
ce produit par 1 que d’utiliser la fonction Cnum().
Remarque 1 – Notre formule ne
marcherait pas dans le cas où il y aurait des
« $ », comme en A5. Pour résoudre ce problème, nous avons créé la formule suivante, qui peut d’ailleurs remplacer sans problème la formule précédente, même quand il n’y a pas de « $ » :
« $ », comme en A5. Pour résoudre ce problème, nous avons créé la formule suivante, qui peut d’ailleurs remplacer sans problème la formule précédente, même quand il n’y a pas de « $ » :
=1*substitue(substitue(substitue(A5;"$";"");",";"");".";",")
Remarque 2 – Les formats
numériques des cellules B2:B5 ne sont pas apparus tout seuls : il revient à
vous à les définir…
Remarque 3 – Cet article est
une actualisation d’un article publié le 24 avril 2008. Nous suivons aujourd'hui la même logique qu'il y a 4 ans...
Bonjour,
RépondreSupprimermerci pour cette application de la fonction substitue.
Nous pourrions également utiliser la fonctionnalité CONVERTIR (menu ou onglet Données): à la 3° étape de l'assistant, le bouton "Avancé..." fait apparaître les paramètres avancés d'importation du texte avec le choix des séparateurs de décimale et de milliers.
Je n'ose plus me rappeler depuis quand cette fonctionnalité existe avec Excel.
Merci pour vos articles et astuces,
Cordialement
Malheureusement, votre formule est tributaire du séparateur décimal choisi par l'utilisateur sur son poste de travail. S'il a choisi le point, la formule ne marche plus...
RépondreSupprimerJe propose la formule suivante :
=0,01*SUBSTITUE(SUBSTITUE(A1;",";"");".";"")
Mille excuses, ma formule ne marche que s'il y a un . décimal dans l'original...
RépondreSupprimerJ'utilise personnellement la fonction Rechercher 'point' / Remplacer par 'virgule' (ou par 'vide' selon les besoins).
RépondreSupprimerEt je multiplie ensuite la valeur par 1 pour transformer le texte en nombre.
Un grand merci pour vos articles!