J'ai colonne de adressée dans ce format:
120 Lemon Street Columbus OH 92738 (Basketball Courts)
Et je dois le scinder en: adresse postale (120 Lemon Street)
, ville (Columbus)
, Etat (OH)
, code postal (92738)
et description ((Basketball Courts))
Est-ce qu'il y a un moyen de faire ça? Tous sont dans le même état, donc ce n'est pas un problème. Ils sont dans différentes villes / villages et ont différents codes postaux.
Si vous savez seulement comment en faire une partie, faites-le moi savoir. Toute aide est la bienvenue, merci!
microsoft-excel
user1282637
la source
la source
Réponses:
Utilisateur1282637, j'ai mis en place un exemple à vous montrer ci-dessous. Je l'ai seulement fait pour être un point de départ afin que vous puissiez terminer avec votre propre réponse complète.
Tout d'abord, j'ai mis en place deux listes. L'une était constituée de toutes les abréviations d'état et l'autre, de tous les suffexes de rue acceptés, que j'ai trouvés ici:
http://pe.usps.com/text/pub28/28apc_002.htm
J'ai utilisé la formule que j'ai énumérée simplement pour convertir la liste en commençant par une majuscule, puis le reste en minuscules, comme si vous aviez écrit le vôtre.
Ensuite, il suffit de regarder ce qui s’applique.
Cette partie pourrait être faite de plusieurs manières mais j'ai choisi cette voie pour un exemple. Il va simplement énumérer un nombre dans la ligne correspondante qui trouve une correspondance pour le suffixe utilisé.
Je sépare la partie (terrains de basket) en utilisant la parenthèse:
J'affiche ce qui reste car dans votre cas, "tribunaux" de "tribunaux de basket" est également un suffixe de rue:
Ensuite, je dois trouver combien de temps dure la chaîne qui correspond au suffixe de rue. J'utilise donc les éléments suivants:
et ça...
et enfin cela me permet d'afficher uniquement la rue:
Maintenant, je n'ai pas fait la ville et l'état, mais en suivant cette idée, vous pouvez y parvenir. De plus, si vous souhaitez une option plus propre, vous devez absolument vous renseigner davantage sur VBA. J'espère que cela vous apprendra au moins quelques idées sur la façon de s'y prendre.
la source
User1282637 demande s'il existe un moyen d'accomplir cette tâche et demande de l'aide pour le faire. Le problème, ce n’est pas tant la mécanique Excel que la manière de traiter l’ambiguïté des données. L'analyse du code postal et de la description est simple (à moins que vous ne combiniez des codes ZIP à 5 et 9 chiffres). Le problème difficile est de séparer la rue de la ville, alors je vais me concentrer sur cela. Cela ne constitue pas une procédure étape par étape avec les formules Excel. Il s'agit simplement de partager un aperçu du problème et de décrire une approche permettant d'obtenir un résultat pour le plus difficile.
Le problème est qu'il n'y a pas de délimiteurs entre les différents champs. Ce n'est pas un problème pour enlever la description ou ZIP car ceux-ci sont facilement identifiables. Le problème consiste à déterminer où la rue se termine et la ville commence. Considérez ces variations dans la portion Street (loin d’une liste exhaustive):
Le nombre de "mots" dans la rue peut varier de 1 ou 2 à 7 ou 8, ce qui n'est pas utile pour l'analyse. La rue "type" n'est pas particulièrement utile. Il y a de l'ordre de 50-100 mots utilisés uniquement pour le type de rue (rue, avenue, boulevard, voie, péage, voie, cour, cercle, terrasse, etc.). Combinez cela avec l'utilisation d'abréviations pour le type de rue, à la fois correct et incorrect, et la liste est dans les centaines. De plus, cette désignation n'est pas toujours le dernier mot dans le champ de la rue. La rue étant la partie la plus difficile à identifier, l'approche logique consiste donc à identifier le reste, le reste étant la rue.
La ville peut être plusieurs mots. Washington Court House, OH est trois mots. Ensuite, considérons des situations comme St Marys, OH. Le "St" fait-il partie du nom de la ville ou d’une désignation de type de rue; dans quel domaine va-t-il? Ou Sud Euclid, OH - "Sud" fait-il partie du nom de la ville ou est-il une direction faisant partie de l'adresse de la rue? La ville a ses problèmes mais il existe un moyen de les résoudre.
Même en utilisant le code postal pour identifier la ville a des problèmes. Il n'y a pas toujours de correspondance 1: 1 entre le nom de la ville et le code postal.
Le moyen le plus pratique d’attaquer le problème consiste à utiliser des "dictionnaires": une liste de villes et un répertoire ZIP Code. Ce sont la partie la plus non ambiguë de l'adresse. Ceux-ci peuvent être trouvés en ligne ou du service postal. Pour faire des comparaisons, vous devrez peut-être nettoyer vos données ou les listes. Ils auront besoin du même style de capitalisation et tout espace supplémentaire dans vos données empêchera une correspondance exacte.
Si vos données ou la liste utilise des abréviations, vous devrez vous en occuper. Vous pouvez soit traduire l’abréviation non abrégée en abréviations standard, soit effectuer une correspondance secondaire avec un dictionnaire d’abréviations (également disponible en ligne ou au service postal), lorsque ces différences sont trouvées.
Le ZIP peut être facilement analysé, et c'est un bon point de départ. Effectuez une recherche de code postal dans le répertoire de codes postaux. Si le résultat correspond exactement à une chaîne de mots précédant immédiatement le ZIP, cela identifie la partie de l'enregistrement qui est le champ de la ville.
S'il n'y a pas de correspondance exacte ou non ambiguë, passez à une comparaison des noms de ville. Parcourez la liste des noms de ville. Pour chaque nom, déterminez le nombre de mots qu'il contient et comparez-le au nombre de mots précédant immédiatement le ZIP.
Si vous obtenez une correspondance par l'un ou l'autre processus, tout ce qui reste à gauche de la ville correspond à l'adresse de la rue.
Ce type d'application est beaucoup plus facile à faire avec une application de base de données qu'avec un tableur. Quoi qu'il en soit, vous pouvez voir que tenter de le faire de manière automatisée n’est pas une tâche simple. Vous ne pouvez pas le faire avec quelques formules de tableur.
Quelle que soit la rigueur de votre programmation, il est probable que vous ayez toujours des enregistrements que vous devez analyser manuellement et des erreurs que vous devez corriger manuellement. Vous n'indiquez pas combien d'enregistrements vous avez. Cela peut être moins de travail de simplement le faire manuellement.
Si le nombre est grand et que je devais le faire, je choisirais la liste. Faites correspondre les enregistrements faciles, tels que les correspondances ZIP non ambiguës. Ensuite, laissez la quantité de données régir la progression de la programmation des correspondances automatisées.
Pour les enregistrements laissés, en supposant que vous ayez déjà retiré le ZIP et sa description, voici un moyen d’accélérer le processus manuel. Regardez le dossier et identifiez visuellement le nombre de "mots" dans la ville, ce qui est une tâche mentale rapide. Entrez cela dans une cellule prescrite et utilisez une formule pour diviser la rue de la ville en fonction du nombre d'espaces (séparez à la Nième espace où N = nombre total d'espaces + 1 - nombre de mots du nom de la ville).
la source
Essayez ceci. Cette approche simple devrait vraiment fonctionner si vous pouvez vivre avec le fait d'avoir l'adresse et la ville dans la même cellule. J'ai une formule pour extraire la ville si ce n'est qu'un mot, mais cela devient beaucoup plus complexe si vous utilisez des villes contenant plusieurs mots (par exemple, New York).
Des formules ... Adresse & amp; Ville: = GAUCHE (A2, FIND ("OH", A2) -1) Etat: = MID (A2, FIND ("OH", A2), 2) - vous avez mentionné que tout est OH, je l'ai donc gardé simple Zip: = MID (A2, FIND ("OH", A2) +3,5) Description: = TRIM (MID (A2, FIND ("OH", A2) +8,30))
https://onedrive.live.com/redir?page=view&resid=D91C36B074F4D0F6!3224&authkey=!AO_MbW7Qxv4yWDo
la source
Code:
Explication: presse
Alt+F11
et collez le code ci-dessus dans le widndow qui apparaît. Sélectionnez ensuite une cellule contenant l'adresse et revenez à la fenêtre dans laquelle vous avez collé le code, puis appuyez surF5
.Si cela fonctionne, nous pouvons travailler à le rendre plus spécifique à votre situation spécifique.
la source