¿Puedes convertir una dirección a un código postal en una hoja de cálculo?


12

Dada una columna de direcciones con ciudad y estado pero sin código postal en una hoja de cálculo, me gustaría poner una fórmula en una segunda columna que arroje el código postal. ¿Sabes una manera de hacer esto?

Estoy tratando con direcciones de EE. UU., Pero las respuestas relacionadas con otros países también son interesantes.

ACTUALIZACIÓN: supongo que espero que haya una manera de hacer esto en las hojas de cálculo de Google. Me doy cuenta de que necesita acceder a una gran base de datos de código postal para hacer esto, pero me parece que dicha base de datos ya está dentro de Google Maps. Si pongo una dirección allí sin código postal, obtengo una dirección con código postal. Si Maps puede hacer esa búsqueda, tal vez también haya una manera de hacerlo en Hojas de cálculo.


Relacionado con la respuesta de @ ChrisF, ¿en qué región estás?
JMD

No me di cuenta de que el término "ZIP" se aplicaba fuera de los Estados Unidos. De todos modos, he especificado ahora.
Isaac Moses

Un hecho poco conocido, los códigos postales solo son necesarios para acelerar la entrega de su correo. Ese uso es menos aplicable hoy que cuando se introdujeron por primera vez (en 1968) porque el USPS ahora escanea las direcciones escritas y busca el código postal si falta. Si no proporciona uno, el USPS usará su sistema para proporcionarlo (y lo mejor de todo es que no tiene costo adicional con eso). Además, los códigos postales son específicos de EE. UU. La mayoría de los lugares los tienen pero se llaman códigos postales en cualquier otro lugar.
krowe

Respuestas:


8

Las hojas de cálculo de Google tienen una serie de funciones para datos externos . Si puede encontrar (o crear) un sitio que realiza la búsqueda pasando parámetros, puede poner una fórmula similar a esta en:

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))

Esta es una idea hipotética. El concatenate, importData y otras funciones para datos externos existen en las hojas de cálculo de Google. "zipfinder.com" no existe. Hay muchos sitios que lo ayudarán a encontrar un código postal de una dirección. La parte difícil es encontrar uno que acepte datos de dirección en la URL y devuelva algo lo suficientemente simple como para que lo utilicen las hojas de cálculo de Google.


4

No habrá nada integrado en una hoja de cálculo ya que las bases de datos de direcciones verificadas son muy caras.

Es posible que encuentre un servicio en línea que lo haga por usted. Por ejemplo, en el Reino Unido, el sitio web de Royal Mail le permite buscar códigos postales (el equivalente del Reino Unido a los códigos postales), pero tiene un límite de 15 búsquedas por día. Esto es para uso personal. Las empresas obtendrán más, pero debes registrarte y pagar por eso.

Servicios similares existirán en otros países.


4

Puede escribir una función personalizada de Script de aplicaciones con el servicio Google Maps, utilizando un enfoque similar a esta respuesta . Para hacer esto, abra Herramientas ... Editor de secuencias de comandos ... y pegue esta función en:

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;
    }
  }
}

Luego puede llamar a esto en una celda de hoja de cálculo, por ejemplo, devuelve correctamente 20500 para la Casa Blanca:

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

A diferencia de otros enfoques, también funciona para ubicaciones no estadounidenses, por ejemplo, devuelve correctamente 75007 para la Torre Eiffel:

=getZIP("Champ de Mars, 5 Avenue Anatole France, Paris, France")

1
¿La API de Google limita la frecuencia con la que puede usar el geocodificador? Si es así, vale la pena mencionarlo aquí.
Excellll

1
La página de cuotas no enumera mapas específicamente, por lo que mi mejor estimación sería 20k / día (límite de búsqueda de URL): developers.google.com/apps-script/guides/services/…
Max Ghenis

3

Necesita algún tipo de servicio o herramienta de búsqueda de direcciones externas. Con solo Ciudad / Estado, a menudo no hay forma de determinar el código postal correcto ya que muchas ciudades tienen múltiples códigos postales y muchas ciudades tienen calles que abarcan varios códigos postales, por lo que ni siquiera puede agregar la calle y usar una ciudad / estado / zip fórmula o búsqueda. Si necesita encontrar códigos postales para direcciones, tendrá que desglosar y pagar un servicio o herramienta. No hay una buena forma de evitar eso.


Sí, hago esto para vivir: convertir datos de un formato a otro. Como se mencionó, algunas ciudades pueden tener varios códigos postales, de hecho, los edificios del World Trade Center tenían sus propios códigos postales, por lo que la ciudad / estado no es suficiente. El USPS tiene una base de datos súper masiva que puede hacer esto, pero también requiere la dirección de la calle y es relativamente costosa.
Blackbeagle el

¿No podría utilizar los datos del censo de EE. UU. Del año 2000? Creo que es de uso gratuito.
Chris

1
No estoy familiarizado con eso, pero aun así estás hablando de una cantidad masiva de datos y no es algo que puedas hacer fácilmente en una hoja de cálculo de Excel.
BBlake

3

Es difícil de hacer en Excel. Debería llamar a un servicio web mediante el kit de herramientas SOAP o utilizar Visual Studio. Uno debe preguntarse qué está pensando Microsoft.

Es mucho más fácil hacerlo en una hoja de cálculo de Google Docs, luego exportar a Excel:

Puede usar el servicio web XML de GeoCoder.ca para buscar el código postal por dirección. En Google Docs, usarías esta función:

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

(donde A2 es la dirección de la calle).

También puede obtener la latitud y longitud de esta manera:

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

Tenga en cuenta que GeoCoder tiene un límite de solicitudes por día para su servicio gratuito.


3

Sí, ahora puede encontrar los códigos postales en su hoja de Google Docs utilizando la siguiente URL:

Paso 1: en esta página de destino , ingrese la dirección que desea buscar.

Paso 2: Busqué la dirección "1245 5TH ST" en Washington, DC y la URL se veía así:

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

Paso 3: copie y pegue la siguiente fórmula y reemplace 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)

Recuerde que la URL en el Paso 3 debe coincidir con la del Paso 2. La celda será dinámica en función de su valor de celda objetivo.

La función en el Paso 3 extrae 11 caracteres después del valor ESTADO. Por lo tanto, deberá ajustar la función MID para obtener los valores correctos. Esto funcionó perfectamente para mí.

Una última cosa: Google permite solo 50 funciones de importación por hoja. Entonces, con el método anterior, puede encontrar solo 25 códigos postales de una vez.


Esto no funcionó para mí esta mañana.
amarrados el

1

En Canadá, el sitio web de Canada Post permite la búsqueda de códigos postales por dirección (y no conozco ningún límite diario) pero desafortunadamente eso no lo ayuda con la integración dentro de su hoja de cálculo. Estoy interesado en ver posibles soluciones para esto también. Siempre he usado la búsqueda manual de códigos postales para los que no conozco.


0

En el Reino Unido, necesitaría acceso al archivo de dirección de código postal (PAF) que enumera todas las direcciones en el país. El acceso directo al PAF cuesta dinero, y tampoco una cantidad insignificante. Pagamos algo así como £ 200 por asiento, por año, para acceso ilimitado a los datos actualizados de PAF, pero luego enviamos más de 10k solicitudes cada mes.

La mayoría de los otros territorios son similares a este respecto, por lo que me imagino que no encontrará una forma legítima de acceder a los datos zip de la manera que desee.

Incluso si pudiera encontrar un sitio que permitiera la consulta RESTful de sus datos para insertar un zip directamente en una hoja de cálculo, sin duda implementarían límites estrictos en el número de consultas que podrían realizarse en un período determinado.


0

Existen algunos servicios en línea que procesarán una hoja de cálculo de Excel (o un archivo CSV / delimitado por tabulaciones) y agregarán códigos postales faltantes. El precio puede variar desde unos pocos dólares hasta más de $ 100 dependiendo del proveedor de servicios, algunos de los cuales tienen tarifas de instalación, tarifas de procesamiento y tarifas de pedidos urgentes.

Algunos proveedores de servicios pueden devolverte el archivo procesado en unos minutos, mientras que otros que afirman "procesamiento urgente" pueden tardar más de 3 días hábiles. Según su pregunta, no desea invertir en comprar software y gastar miles de dólares en una solución de software en el sitio. Si ese es el caso, un proveedor en línea es su mejor opción.

En aras de la divulgación completa, soy el fundador de SmartyStreets. Ofrecemos verificación de direcciones en línea totalmente automatizada . Puede arrastrar y soltar su archivo Excel en nuestro sitio web y lo procesaremos y le devolveremos en aproximadamente un minuto o dos, dependiendo del tamaño.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.