XL 2016 Séparer Le n° et l'adresse dans deux colonnes avec des nuances dans les adresses

theolepennec

XLDnaute Nouveau
Bonjour à tous,

Je suis dans une impasse que je n'arrive pas à résoudre malgré les nombreuses discutions fermée sur le sujet.

Le cas est :

J'ai une bdd ou j'ai des adresses. je voudrais séparer les adresses et les numéros dans deux colonnes différentes, cependant dans les numéros il y a des nuances, comme des lettres ou alors deux numéros ( chalet + adresse) ou encore des adresses sans numéro....
Le fichier de base comporte environ 5000 lignes

Pour m'aider je vous joins un fichier test avec quelques lignes ou les cas de possible sont répertoriés.

Merci d'avance pour votre aide !
Théo LE PENNEC
 

Pièces jointes

  • TEST.xlsx
    11.6 KB · Affichages: 20

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour theolepennec,
Un essai en PJ avec une fonction perso :
VB:
Function Num(adresse)
Dim T, N, i%, D%
Application.Volatile
T = Split(adresse, " ")
If T(1) = "|" Then
    N = T(0) & "|" & T(2)
Else
    N = T(0)
End If
D = 0
For i = 1 To Len(N)
    If IsNumeric(Mid(N, i, 1)) Then D = 1
Next i
If D = 1 Then Num = N Else Num = ""
End Function
Syntaxe : =Num(C2) avec C2 cellule où il y a l'adresse.
Ceci étant dit, par expérience il y a de fortes chances que vous découvriez d'autres cas "tordus" où la fonction ne marchera pas. Du genre N2/17 ou encore 93 C .... à voir avec votre base de données.
:rolleyes:
 

Pièces jointes

  • TEST (22).xlsm
    17 KB · Affichages: 6

njhub

XLDnaute Occasionnel
Bonjour theolepennec, sylvanu,

essayez avec les formules ci-dessous (qui ne fonctionneront que pour rue ou ruelle, enfin un mot dont l'initiale est r) à étendre vers le bas tant que nécessaire

En B2 la formule suivante :
Code:
=SI(ESTNUM(GAUCHE(D2;1)*1);GAUCHE(D2;CHERCHE(" r";D2)-0);SI(SOMME(SI(ESTNUM(CHERCHE("0 r";D2));10;0);SI(ESTNUM(CHERCHE("1 r";D2));1;0);SI(ESTNUM(CHERCHE("2 r";D2));2;0);SI(ESTNUM(CHERCHE("3 r";D2));3;0);SI(ESTNUM(CHERCHE("4 r";D2));4;0);SI(ESTNUM(CHERCHE("5 r";D2));5;0);SI(ESTNUM(CHERCHE("6 r";D2));5;0);SI(ESTNUM(CHERCHE("7 r";D2));7;0);SI(ESTNUM(CHERCHE("8 r";D2));8;0);SI(ESTNUM(CHERCHE("9 r";D2));9;0))=0;"";GAUCHE(D2;CHERCHE(SOMME(SI(ESTNUM(CHERCHE("0 r";D2));10;0);SI(ESTNUM(CHERCHE("1 r";D2));1;0);SI(ESTNUM(CHERCHE("2 r";D2));2;0);SI(ESTNUM(CHERCHE("3 r";D2));3;0);SI(ESTNUM(CHERCHE("4 r";D2));4;0);SI(ESTNUM(CHERCHE("5 r";D2));5;0);SI(ESTNUM(CHERCHE("6 r";D2));5;0);SI(ESTNUM(CHERCHE("7 r";D2));7;0);SI(ESTNUM(CHERCHE("8 r";D2));8;0);SI(ESTNUM(CHERCHE("9 r";D2));9;0))&" r";D2)+1)))

En C2 la formule suivante :
Code:
=SI(B2<>"";SUBSTITUE(D2;B2;"");D2)

theolepennec.png
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 681
dernier inscrit
racsam77