Разделить полный адрес на почтовый адрес, город, штат, почтовый индекс, страну в Excel

avatar
MASBAUR RAHMAN
9 августа 2021 в 00:29
395
1
0

[У меня есть более 47 тысяч полных адресных данных разных стран, и я хочу разделить их на адреса, города, штаты, почтовые индексы и страны. Я пробовал много способов, но не смог найти ни одной формулы, так как эти адреса различаются по структуре и шаблону. NB: у меня нет хороших знаний о Excel VBA или макросах]

Источник
Gary's Student
9 августа 2021 в 00:32
1

Пожалуйста, обновите этот вопрос, указав конкретные примеры входных данных и желаемых результатов.

teylyn
9 августа 2021 в 00:55
3

разные страны имеют разные соглашения для адресов. Если вы можете установить правило с помощью простых слов, которое определяет, как разделить данные и которое применяется ко ВСЕМ вашим данным, то это можно построить в Excel. Если, однако, что гораздо более вероятно, вам нужен человеческий интеллект, чтобы определить, принадлежит ли часть адреса улице, городу или чему-то еще, то вы не сможете проанализировать эти данные в Excel. Итак, прежде чем просить формулу, разработайте правила, которые будут применяться.

teylyn
9 августа 2021 в 00:57
2

В ваших данных о Франции почтовый индекс стоит перед названием города, разделенным пробелом. Данные SA имеют почтовый индекс после города, разделенного запятой. Это трудно очистить.

MASBAUR RAHMAN
9 августа 2021 в 07:59
0

Я загрузил другое изображение с конкретными примерами входных данных и желаемых результатов.

MASBAUR RAHMAN
9 августа 2021 в 10:57
0

@Т.М. Большое вам спасибо Но я должен использовать его, тогда я могу что-то сказать об этом Я никогда не использую макросы и VBA, поэтому мне нужно время, чтобы проверить это Еще раз спасибо

Ответы (1)

avatar
Dominique
9 августа 2021 в 06:25
0

Эта задача слишком сложна, чтобы ее можно было выполнить с помощью простой формулы. Для ее выполнения вам понадобится VBA, позвольте дать вам несколько советов:

  • Вы можете посчитать количество запятых, чтобы угадать содержание (очевидно, некоторые адреса начинаются с названия здания). Если названия здания нет, просто добавьте запятую, чтобы везде был одинаковый формат.
  • После того, как все будет иметь одинаковый формат (количество запятых везде одинаково), вы можете начать разбиение, используя запятую в качестве разделителя. Результатами будут «Имя», «Полное название улицы и номер», «Полный идентификатор города», ...
  • .
  • Вещи, которые по-прежнему состоят из разных элементов (например, «Полный идентификатор города»), можно разделить, взяв первую часть (число, отделенное от остальных пробелом) и вторую часть (остальную часть « Полный идентификатор города").

Изменить: добавить небольшой макрос

Этот макрос содержит функции Split() и IsNumeric(), это все, что вам нужно:

Sub test()
Dim A, B As Integer
T = Split("1, 2, X", ",")
If IsNumeric(T(0)) Then A = T(0) Else A = -1
If IsNumeric(T(2)) Then B = T(2) Else B = -1

MsgBox "Result : A=[" & CStr(A) & "], B=[" & CStr(B) & "]"
End Sub
MASBAUR RAHMAN
9 августа 2021 в 08:00
0

Большое спасибо за ваше ценное предложение, но у вас нет хороших знаний о Excel VBA или макросах.

Dominique
9 августа 2021 в 08:18
0

@MASBAURRAHMAN: я добавил пример макроса, оттуда вы можете узнать, как он работает.