Gérer des numéros de téléphone

Voici un exemple qui m'a été envoyé par un client et qui permet de combiner plusieurs formules de texte.

Si vous importez des données, il arrive parfois que celles-ci soient mal saisies.

Voici les numéros saisis avec leurs erreurs :

numéros non conformes 1

Nous pouvons prendre le problème pas à pas pour identifier les erreurs.

Première erreur : 233111111

La première erreur correspond à :
233111111
L'erreur peut provenir de plusieurs choses :
- aligné à droite et donc, correspondant à un nombre.
- pas de 0 avant le premier chiffre

On peut donc soit identifier que la valeur est numérique avec la formule
=ESTNUM(A1)

ou alors identifier que le premier chiffre est différent de 0 avec :
=GAUCHE(A1;1)="0"

Deuxième erreur : 0

La deuxième erreur, un zéro aligné à droite, peut être gérée avec ESTNUM.

On peut aussi identifier - pour des numéros de téléphone francais seulement - que le nombre de caractères est égal à 14 (pour prendre en compte les espaces). D'où :
=NBCAR(A1)<>14

Troisième erreur : 02.33.11.11.11

Dans ce cas, il s'agit de texte, et le nombre de caractères est égal à 14. Par contre, on voudrait des espaces à la place des ".".

Donc, on utilise TROUVE qui retourne une valeur d'erreur s'il ne trouve pas le ".". On gère ensuite cette valeur d'erreur avec ESTERREUR, et on inverse le résultat. Evidemment, ce serait plus facile avec une fonction NETROUVEPAS 😉
=NON(ESTERREUR(TROUVE(".";A1)))

On peut ensuite combiner tout ceci, ce qui nous donne cette formule :
=SI(GAUCHE(A1;1)<>"0";"non conforme";SI(NON(ESTERREUR(TROUVE(".";A1)));"non conforme";SI(NBCAR(A1)<>14;"non conforme";"Conforme")))

Bon amusement à tous !

A bientôt

Gaetan