Transformer par une formule du texte en nombre

Fermé
cs_plefebv Messages postés 10 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 26 décembre 2017 - 17 mai 2016 à 17:58
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 19 mai 2016 à 07:16
Bonjour,

Ce devrait être la version Pour les Nuls d'une FAQ pour néophytes débutants, j'ai honte de vous poser une question aussi triviale (et j'ai un peu peur de la réponse, mais si elle donne la solution, toute honte bue...).

J'ai en colonne A des cellules de textes qui contiennent des nombres.
C'est volontaire, elles sont issues de formules.
Les formules de cette colonne sont donc "=TEXTE(F:F;"")" (F:F étant ma colonne source, qui en principe contient du texte).
Je veux que la colonne B contienne les valeurs numériques de cette colonne.
Je fais assez logiquement un "=CNUM(A:A)", et... j'obtiens une erreur "#VALEUR!".

Ô choc ! la fonction CNUM, qui transforme un texte en nombre, ne le fait pas quand le texte est... un texte !!! C'est du moins ce que m'indique l'aide d'Excel. On ne sait pas pourquoi. Mais il n'y a apparemment pas de fonction similaire et qui le ferait.

Et la doc du support Office confirme, et propose 4 manières de faire un "format standard" à la main (comme si on ne pouvait pas le faire dans une formule, mais alors les formules elles servent à quoi ?). Une seule aurait suffi, de toute façon ce n'est pas ce dont j'ai besoin.

Dans le genre 'si le contenu d'une base de données ne vous convient pas, il vous suffit de la retaper entièrement à la main dans le bon format, et vous verrez l'éblouissante efficacité de la conversion'. Forcément, s'il n'y a plus rien à faire... mais à quoi donc sert un ordinateur ?
Je suis consterné par tant de médiocrité.

Je me demande s'il ne va pas falloir ressortir le maillet et le silex, et découper la chaîne en caractères pour reconstruire un nombre à partir des valeurs ASCII des caractères; Navrant comme régression, on revient 35 ans en arrière: en fait, un peu avant la sortie de VisiCalc.

Il y a certainement un moyen plus intelligent, une fonction non documentée: EVAL(CONCAT(GAUCHE(...);...;GAUCHE(...))) ou (APPLY lambda-expr args ...) peut être ? (Le lambda-calcul est sorti en 1956, ça fait à peine 60 ans. J'ose pas un smiley...)

Que faire ?
A voir également:

5 réponses

cs_plefebv Messages postés 10 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 26 décembre 2017
17 mai 2016 à 18:06
A noter que le solution présentée dans http://www.astucesinternet.com/modules/smartsection/item.php?itemid=25, que l'on s'attendrait à voir fonctionner, est justement ce que je demande, et qui ne fonctionne plus dans la version plus récente d'Excel.
0