Formule Excel: supprimer les caractères non numériques -

Table des matières

Formule générique

(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))

Sommaire

Pour supprimer les caractères non numériques d'une chaîne de texte, vous pouvez essayer cette formule expérimentale basée sur la fonction TEXTJOIN, une nouvelle fonction dans Excel 2019. Dans l'exemple illustré, la formule en C5 est:

(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))

Remarque: il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Explication

Travaillant de l'intérieur vers l'extérieur, la formule MID est utilisée pour extraire le texte en B5, un caractère à la fois. La clé est la pièce ROW / INDIRECT:

ROW(INDIRECT("1:100"))

qui fait tourner un tableau contenant 100 nombres comme celui-ci:

(1,2,3,4,5,6,7,8… .99,100)

Remarque: 100 représente le nombre maximum de caractères à traiter. Modifiez en fonction de vos données.

Ce tableau entre dans la fonction MID comme argument start_num . Pour num_chars , nous utilisons 1.

La fonction MID renvoie un tableau comme celui-ci:

("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " "…)

(éléments supplémentaires dans le tableau supprimés pour plus de lisibilité)

À ce tableau, nous ajoutons zéro. C'est une astuce simple qui oblige Excel à essayer de forcer le texte à un nombre. Les valeurs de texte numériques telles que "1", "2", "3", "4", etc. sont converties, tandis que les valeurs non numériques échouent et génèrent une erreur #VALUE. Nous utilisons la fonction IFERROR pour attraper ces erreurs et retourner une chaîne vide (""), tandis que les valeurs numériques passent dans le tableau. Le résultat est un tableau qui ne contient que des nombres et des chaînes vides:

(1; 0; 0; ""; ""; ""; ""; "";….)

Enfin, ce résultat de tableau va dans la fonction TEXTJOIN comme text1 argument. Pour le délimiteur , nous utilisons une chaîne vide ("") et pour ignore_empty nous fournissons TRUE. TEXTJOIN concatène ensuite toutes les valeurs non vides du tableau et renvoie le résultat.

Remarque: TEXTJOIN renverra les nombres sous forme de texte, par exemple "100," 500 ", etc. Si vous voulez un vrai résultat numérique, ajoutez zéro ou encapsulez la formule entière dans la fonction VALUE.

Articles intéressants...