Fonction SI selon plusieurs critères (OU) et je coince...

Résolu/Fermé
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014 - 30 juil. 2014 à 18:24
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014 - 1 août 2014 à 10:14
Bonjour à tous,

Je m'aide souvent de ce forum et de google) pour trouver réponse à mes interrogations mais là je coince...

Je suis en train de travailler sur une bdd de numéros de téléphones (environs 4000). A l'origine cela se présentait comme cela : +32477889966 ou +3242223355 et je veux les transformer en "0477 88 99 66" et "04 222 33 55".

J'ai commencer par un SUBSTITUTE pour le "+32" et le mettre en "0", puis à l'aide d'une succession de formules je procède par étapes pour insérer les espaces. Maintenant une fois les deux premiers espaces (en partant de la droite) ont été mis, je coince car je veux compliquer la chose. C'est difficiles à expliquer alors je passe directement sur l'exemple chiffré de 3 numéros selon l'étape ou j'en suis

Cellule A5 : 04555 66 77
Cellule A6 : 07111 22 33
Cellule A7 : 047788 99 00

Ma formule d'origine (qui fonctionne) :
=SI(NBCAR(A5)=11;GAUCHE(A5;(NBCAR(A5)-9))&" "&DROITE(A5;9);GAUCHE(A5;(NBCAR(A5)-8))&" "&DROITE(A5;8))

Avec cette formule, A5 et A6 seront modifiés pour respectivement devenir 04 555 66 77 et 07 111 22 33 et la cellule A7 (plus longue car c'est un numéro de portable, et en Belgique ils ont un chiffre en plus) 0477 88 99 00.

Maintenant mon problème : dans l'idéal, il faut séparer l'indicatif régional. En Belgique il y a 4 indicatif à deux chiffres : 02, 03, 04, 09 et tout le reste est à 3 chiffre : 011,012,056,069,071,088,etc... (liste non exhaustive). Je doit donc conserver 04 555 66 77 mais obtenir 071 11 22 33.

Mon but donc: inclure un OU dans ma formule pour qu'elle inclue ma cellule A6. Pour cela je veux que ma formule reconnaisse les 2 premiers chiffre du numéro (ici : 07, mais dans ma formule finale ce sera un OU avec du 01,05,06,07,08.

J'ai donc testé :
=SI(OU(NBCAR(A5)=11;GAUCHE(A5;2)="07");GAUCHE(A5;(NBCAR(A5)-9))&" "&DROITE(A5;9);GAUCHE(AU5;(NBCAR(A5)-8))&" "&DROITE(A5;8))

et j'obtiens exactement le même résultat que si je n'avais pas mis le OU (donc mon GAUCHE(A5;2)="07" n'est pas pris en compte et il applique la partie de la formule qui ne répond pas à ma condition.

Any help please ?

ps: put*** ce que c'est dur a expliquer ! Désolé si je vous ai embrouillé !
A voir également:

3 réponses

Mapoire Messages postés 4 Date d'inscription vendredi 10 mai 2013 Statut Membre Dernière intervention 30 juillet 2014
30 juil. 2014 à 18:33
Bonjour,
As-tu essayé de laisser ton numéro de téléphone (après l'avoir réduit à 10 chiffres) dans une cellule et utilisé sur cette cellule le menu Format, cellule, spécial, numéro de téléphone ?

Chez moi cela fonctionne très bien , si j'ai le numéro 102030405 dans une cellule, cela ajoute le zéro au début et me présente mon numéro sous forme 01 02 03 04 05.
Cordialement.
0
Mapoire Messages postés 4 Date d'inscription vendredi 10 mai 2013 Statut Membre Dernière intervention 30 juillet 2014
30 juil. 2014 à 18:35
Pour un numéro Belge, il y a le menu Format, cellule, spécial, numéro de téléphone(Belgique) ?
0
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
30 juil. 2014 à 19:18
Le truc c'est pour deux numéros au même nombre de chiffre, l'indicatif sera un coup "04" l'autre coup "071"
0
Mapoire Messages postés 4 Date d'inscription vendredi 10 mai 2013 Statut Membre Dernière intervention 30 juillet 2014 > BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
30 juil. 2014 à 19:39
Alors il faut faire plusieurs SI imbriquées du style =SI(cond1;vrai;SI(COND2;VRAI;FAUX))
Avec la fonction SI imbriquées, on ferme les parenthèses à la fin et il doit y avoir autant de parenthèses fermées que de SI.
BON COURAGE.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
30 juil. 2014 à 19:45
Bonsoir

Essaie :

=SI(NBCAR(A5)=12;GAUCHE(A5;4)&" "&DROITE(A5;8);SI(OU(ET(CNUM(GAUCHE(A5;2))>1;CNUM(GAUCHE(A5;2))<5);CNUM(GAUCHE(A5;2))>9);GAUCHE(A5;2)&" "&DROITE(A5;9);GAUCHE(A5;3)&" "&DROITE(A5;8)))

Si j'ai bien compris la problématique !

Cdlmnt

0
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
30 juil. 2014 à 20:04
Yeah ça marche nickel ! l'ennui c'est que ça fout un peu le bordel dans les numéros qui n'étaient pas enregistrer selon le même format, mais autrement oui cela fonctionne pour mon problème... Je n'ai plus qu'à essayer de comprendre ta formule pour pas m'endormir con, à commencer par le CNUM...

Merci beaucoup d'avoir pris le temps de te plonger sur mon problème en tout cas !
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
30 juil. 2014 à 20:44
Le CNUM convertit le texte en nombre ce qui permet de limiter les conditions avec > et <
D'ailleurs je m'aperçois d'une erreur dans ma formule tapée trop vite ! ce ne dot pas être CNUM(GAUCHE(A5;2))>9 mais CNUM(GAUCHE(A5;2))=9 car c'est le cas du 09 qu'on veut exclure
0
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
30 juil. 2014 à 22:28
Je vais me pencher un peu dessus puis je mettrai le topic en résolu si j'ai plus d'autre questions !

Encore merci en tout cas :)
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
30 juil. 2014 à 22:32
BlackTwist => Black List !
0
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
1 août 2014 à 10:14
Voilà j'ai paufiné ta formule Via55 car elle provoquait des erreurs sur certaines lignes et j'ai réussi a trouvé la bonne !

Encore un énorme merci ! - Sujet résolu-
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 30/07/2014 à 19:56
Bonjour,

Une proposition en vba.
Laisser les numéros sous forme de nombres comme 45556677, sélectionner la plage à traiter et lancer la macro plageNum
https://www.cjoint.com/?DGEt0d4WDFD
Si tu dois le faire souvent on peut ajouter la suppression des +32. Comme je ne sais pas où tu en es dans ta liste je n'ai pas fait.

eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
30 juil. 2014 à 22:05
de rien...
0
BlackTwist Messages postés 6 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
31 juil. 2014 à 11:02
J'ai pas eu l'occasion de tester encore, journée de repos aujourd'hui :) je regarderai ta macro, merci !
0