Можете ли вы преобразовать адрес в почтовый индекс в электронной таблице?

12

Учитывая столбец адресов улиц с указанием города и штата, но без почтового индекса в электронной таблице, я хотел бы поместить формулу во второй столбец, который дает почтовый индекс. Вы знаете способ сделать это?

Я имею дело с адресами США, но интересны и ответы, касающиеся других стран.

ОБНОВЛЕНИЕ: Я полагаю, что в основном я надеюсь, что есть способ сделать это в Google Spreadsheets. Я понимаю, что для этого вам нужен доступ к обширной базе данных с почтовым индексом, но мне кажется, что такая база данных уже находится в Картах Google. Если я помещу туда адрес без почтового индекса, я получу обратно адрес с почтовым индексом. Если Карты могут выполнить такой поиск, возможно, есть способ сделать это и в электронных таблицах.

Исаак Моисей
источник
Относительно ответа @ ChrisF, в каком регионе вы находитесь?
JMD
Я не понимал, что термин «ZIP» применяется за пределами США. Во всяком случае, я указал сейчас.
Исаак Моисей
Малоизвестный факт, почтовые индексы нужны только для ускорения доставки почты. Это использование менее применимо сегодня, чем когда они были впервые введены (в 1968 году), потому что USPS теперь сканирует напечатанные адреса и ищет ZIP-файл для вас, если он отсутствует. Если вы его не предоставите, тогда USPS будет использовать свою систему для его предоставления (и, что самое главное, это не требует дополнительных затрат). Кроме того, почтовые индексы являются специфическими для США. В большинстве мест они есть, но везде их называют почтовыми индексами.
krowe

Ответы:

8

У электронных таблиц Google есть ряд функций для внешних данных . Если вы можете найти (или создать) сайт, который выполняет поиск путем передачи параметров, вы можете поместить формулу, подобную этой, в:

Cell A1 (Address): 123 Main St
Cell B1 (City): Springfield
Cell C1 (State): MO

Cell D1 (combined address): =concatenate(A1,B1,C1)

Cell E1 (imported zip code): 
   =importData(concatenate("http://zipfinder.com/search?addr=",D1))

Это гипотетическая идея. Конкатенация, importData и другие функции для внешних данных существуют в таблицах Google. "zipfinder.com" не существует. Есть много сайтов, которые помогут вам найти почтовый индекс по адресу. Самое сложное - найти тот, который принимает адресные данные в URL и возвращает что-то достаточно простое для использования в электронных таблицах Google.

Даг Харрис
источник
4

В электронную таблицу не будет встроено ничего, поскольку базы данных с проверенными адресами очень дороги.

Вы можете найти онлайн-сервис, который сделает это за вас. Например, в Великобритании веб-сайт Royal Mail позволяет вам искать почтовые индексы (в Великобритании эквивалент почтовых индексов), но вы можете ограничиться 15 поисками в день. Это для личного использования. Бизнес получит больше - но вы должны зарегистрироваться и заплатить за это.

Подобные услуги будут существовать в других странах.

ChrisF
источник
4

Вы можете написать пользовательскую функцию «Сценарий приложений» с помощью сервиса Google Maps, используя аналогичный подход к этому ответу . Для этого откройте Инструменты ... Редактор скриптов ... и вставьте эту функцию в:

function getZIP(address) {
  var geo = Maps.newGeocoder().geocode(address);
  var resultComponents = geo.results[0].address_components;
  for (var i = 0; i < resultComponents.length; i++) {
     if (resultComponents[i].types.indexOf('postal_code') > -1) {
       return resultComponents[i].long_name;
    }
  }
}

Затем вы можете вызвать это в ячейке электронной таблицы, например, она правильно возвращает 20500 для Белого дома:

=getZIP("1600 Pennsylvania Ave. NW, Washington, DC")

В отличие от некоторых других подходов, он также работает для неамериканских локаций, например, он правильно возвращает 75007 для Эйфелевой башни:

=getZIP("Champ de Mars, 5 Avenue Anatole France, Paris, France")
Макс Генис
источник
1
Ограничивает ли Google API частоту использования геокодера? Если так, то стоит упомянуть здесь.
Excellll
1
На странице квот не
указан
3

Вам нужен какой-то внешний инструмент или служба поиска адресов. При использовании только города / штата зачастую невозможно определить правильный почтовый индекс, поскольку во многих городах есть несколько почтовых индексов, а во многих городах есть улицы, которые охватывают несколько почтовых индексов, поэтому вы даже не можете добавить только улицу и использовать город / штат / ZIP формула или поиск. Если вам нужно найти почтовые индексы для адресов, вам придется сломаться и оплатить услугу или инструмент. Там нет хорошего способа обойти это.

BBlake
источник
Да, я делаю это для жизни - преобразование данных из одного формата в другой. Как уже упоминалось, в некоторых городах может быть несколько почтовых индексов, поэтому в зданиях Всемирного торгового центра были свои собственные почтовые индексы, поэтому города / штата недостаточно. У USPS есть сверхмассивная база данных, которая может сделать это, но она также требует адреса улицы и является относительно дорогой.
Blackbeagle
Не могли бы вы использовать данные переписи населения США 2000 года? Я считаю, что это бесплатно для использования.
Крис
1
Я не знаком с этим, но даже если вы говорите об огромном количестве данных, вы вряд ли сможете легко это сделать в электронной таблице Excel.
BBlake
3

Это сложно сделать в Excel. Вам нужно будет вызвать веб-службу с помощью инструментария SOAP или использовать Visual Studio. Нужно задаться вопросом, что думает Microsoft.

Это гораздо проще сделать в электронной таблице Google Docs, а затем экспортировать в Excel:

Вы можете использовать веб-сервис XML GeoCoder.ca для поиска почтового индекса по адресу. В Google Docs вы бы использовали эту функцию:

=importXML("http://geocoder.ca/?geoit=xml&showpostal=1&locate=" & A2,"//postal")

(где A2 - адрес улицы.)

Вы также можете получить широту и долготу следующим образом:

=importXML("http://geocoder.ca/?geoit=xml&showpostal=1&locate=" & A2,"//geodata")

Обратите внимание, что GeoCoder имеет ограничение на количество запросов в день для их бесплатного обслуживания.

Нил Макгиган
источник
3

Да. Теперь вы можете найти почтовые индексы в своем документе Документов Google, используя следующий URL:

Шаг 1: На этой целевой странице введите адрес, который вы хотите найти.

Шаг 2: Я искал адрес «1245 5TH ST» в Вашингтоне, округ Колумбия, и URL выглядел так:

https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1245+5TH+ST&address2=&city=Washington&state=DC&urbanCode=&postalCode=&zip=

Шаг 3: Скопируйте и вставьте следующую формулу и замените CELL, CITY, STATE:

=Mid(importHTML(CONCATENATE("https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=",CELL,"&address2=&city=CITY&state=STATE&urbanCode=&postalCode=&zip="),"list",15),Find("DC",importHTML(CONCATENATE("https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=",CELL,"&address2=&city=CITY&state=STATE&urbanCode=&postalCode=&zip="),"list",15))+2,11)

Помните, что URL-адрес шага 3 должен совпадать с URL-адресом шага 2. Ячейка будет динамической в ​​зависимости от целевого значения ячейки.

Функция на шаге 3 извлекает 11 символов после значения STATE. Следовательно, вам придется настроить MID-функцию, чтобы получить правильные значения. Это отлично сработало для меня.

И последнее: Google позволяет использовать только 50 функций импорта на листе. Таким образом, с помощью вышеуказанного метода вы можете найти только 25 почтовых индексов за один раз.

Сушил Джамнани
источник
Это не сработало для меня этим утром.
пришвартовался
1

В Канаде веб-сайт Канадской почты позволяет осуществлять поиск почтовых индексов по адресу (а я не знаю ни одного дневного лимита), но, к сожалению, это не поможет вам с интеграцией в вашу электронную таблицу. Я также заинтересован в поиске потенциальных решений для этого. Я всегда использовал ручной поиск почтового индекса для тех, кого я не знаю.

JMD
источник
0

В Великобритании вам потребуется доступ к файлу почтовых индексов (PAF), в котором перечислены все адреса в стране. Прямой доступ к PAF стоит денег, а не незначительной суммы. Мы платим около 200 фунтов стерлингов за место в год за неограниченный доступ к обновленным данным PAF, но затем мы ежемесячно выбрасываем более 10 000 запросов.

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

Даже если бы вы могли найти сайт, который позволил бы RESTful запрашивать их данные, чтобы вставить zip-файл непосредственно в электронную таблицу, они, без сомнения, установили бы строгие ограничения на количество запросов, которые можно было бы сделать в любой заданный период.

Lunatik
источник
0

Существует несколько онлайн-сервисов, которые обрабатывают электронную таблицу Excel (или CSV / файл с разделителями табуляции) и добавляют недостающие ZIP-коды. Цена может варьироваться от нескольких долларов до 100 долларов США + в зависимости от поставщика услуг, некоторые из которых имеют сборы за установку, сборы за обработку и сборы за срочные заказы.

Некоторые поставщики услуг могут вернуть обработанный файл вам в течение нескольких минут, в то время как другие, которые заявляют о «срочной обработке», могут занять более 3 рабочих дней. Исходя из вашего вопроса, вы не хотите инвестировать в покупку программного обеспечения и тратить тысячи долларов на программное решение на месте. Если это так, то лучшим выбором будет онлайн-провайдер.

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

Джонатан Оливер
источник