Fonction SI selon plusieurs critères (OU) et je coince...
Résolu
BlackTwist
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
BlackTwist Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
BlackTwist Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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) :
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é :
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é !
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:
- Fonction SI selon plusieurs critères (OU) et je coince...
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction filtre excel n'existe pas - Forum Excel
3 réponses
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.
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.
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
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
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 !
Merci beaucoup d'avoir pris le temps de te plonger sur mon problème en tout cas !
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
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
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.