Convierta el código postal al estado en OpenOffice

1

Estoy tratando de mover datos de dos de nuestros viejos sistemas a un nuevo sistema. El problema es que, en algún lugar a lo largo de la línea, la columna 'estado' de nuestra base de datos estaba dañada. Tengo una columna de códigos postales que debo determinar para establecer. He encontrado varias soluciones para Excel, pero no parecen funcionar bien con OpenOffice. Estoy bastante seguro de que hay una manera de hacerlo con el CSV desde aquí, pero no estoy seguro de por dónde empezar. ¿Algunas ideas?

SickHippie
fuente

Respuestas:

1

Este es un camino bastante largo, pero funcionó para lo que necesitaba. Esperemos que alguien más pueda usar esta información. Podría haber utilizado declaraciones OR adicionales para algunos de los estados, pero fue más fácil para mí diseñar mi conjunto de datos sin él.

Tenía todo esto como una sola fórmula, pero era demasiado largo para los gustos de OO, así que tuve que dividirlo en 4 fórmulas, pegar las fórmulas en 4 columnas, crear una quinta columna que concatena las primeras 4, luego pegar el valores solo de la quinta columna a la columna original 'estado'.

=IF(AND(S3>=99501;S3<=99950);"AK";IF(AND(S3>=35004;S3<=36925);"AL";IF(AND(S3>=71601;S3<=72959);"AR";IF(AND(S3>=75502;S3<=75502);"AR";IF(AND(S3>=85001;S3<=86556);"AZ";IF(AND(S3>=90001;S3<=96162);"CA";IF(AND(S3>=80001;S3<=81658);"CO";IF(AND(S3>=06001;S3<=06389);"CT";IF(AND(S3>=06401;S3<=06928);"CT";IF(AND(S3>=20001;S3<=20039);"DC";IF(AND(S3>=20042;S3<=20599);"DC";IF(AND(S3>=20799;S3<=20799);"DC";IF(AND(S3>=19701;S3<=19980);"DE";IF(AND(S3>=32004;S3<=34997);"FL";IF(AND(S3>=30001;S3<=31999);"GA";IF(AND(S3>=39901;S3<=39901);"GA";IF(AND(S3>=96701;S3<=96898);"HI";IF(AND(S3>=50001;S3<=52809);"IA";IF(AND(S3>=68119;S3<=68120);"IA";IF(AND(S3>=83201;S3<=83876);"ID";0))))))))))))))))))))
=IF(AND(S3>=60001;S3<=62999);"IL";IF(AND(S3>=46001;S3<=47997);"IN";IF(AND(S3>=66002;S3<=67954);"KS";IF(AND(S3>=40003;S3<=42788);"KY";IF(AND(S3>=70001;S3<=71232);"LA";IF(AND(S3>=71234;S3<=71497);"LA";IF(AND(S3>=01001;S3<=02791);"MA";IF(AND(S3>=05501;S3<=05544);"MA";IF(AND(S3>=20331;S3<=20331);"MD";IF(AND(S3>=20335;S3<=20797);"MD";IF(AND(S3>=20812;S3<=21930);"MD";IF(AND(S3>=03901;S3<=04992);"ME";IF(AND(S3>=48001;S3<=49971);"MI";IF(AND(S3>=55001;S3<=56763);"MN";IF(AND(S3>=63001;S3<=65899);"MO";IF(AND(S3>=38601;S3<=39776);"MS";IF(AND(S3>=71233;S3<=71233);"MS";IF(AND(S3>=59001;S3<=59937);"MT";IF(AND(S3>=27006;S3<=28909);"NC";IF(AND(S3>=58001;S3<=58856);"ND";0))))))))))))))))))))
=IF(AND(S3>=68001;S3<=68118);"NE";IF(AND(S3>=68122;S3<=69367);"NE";IF(AND(S3>=03031;S3<=03897);"NH";IF(AND(S3>=07001;S3<=08989);"NJ";IF(AND(S3>=87001;S3<=88441);"NM";IF(AND(S3>=88901;S3<=89883);"NV";IF(AND(S3>=06390;S3<=06390);"NY";IF(AND(S3>=10001;S3<=14975);"NY";IF(AND(S3>=43001;S3<=45999);"OH";IF(AND(S3>=73001;S3<=73199);"OK";IF(AND(S3>=73401;S3<=74966);"OK";IF(AND(S3>=97001;S3<=97920);"OR";IF(AND(S3>=15001;S3<=19640);"PA";IF(AND(S3>=02801;S3<=02940);"RI";IF(AND(S3>=29001;S3<=29948);"SC";IF(AND(S3>=57001;S3<=57799);"SD";IF(AND(S3>=37010;S3<=38589);"TN";IF(AND(S3>=73301;S3<=73301);"TX";IF(AND(S3>=75001;S3<=75501);"TX";IF(AND(S3>=75503;S3<=79999);"TX";0))))))))))))))))))))
=IF(AND(S3>=88510;S3<=88589);"TX";IF(AND(S3>=84001;S3<=84784);"UT";IF(AND(S3>=20040;S3<=20041);"VA";IF(AND(S3>=20040;S3<=20167);"VA";IF(AND(S3>=20042;S3<=20042);"VA";IF(AND(S3>=22001;S3<=24658);"VA";IF(AND(S3>=05001;S3<=05495);"VT";IF(AND(S3>=05601;S3<=05907);"VT";IF(AND(S3>=98001;S3<=99403);"WA";IF(AND(S3>=53001;S3<=54990);"WI";IF(AND(S3>=24701;S3<=26886);"WV";IF(AND(S3>=82001;S3<=83128);"WY";0))))))))))))

La fórmula concatenada es simplemente = CONCATENAR (T3; U3; V3; W3)

Esperemos que esta pregunta le ahorre algo de tiempo a alguien más.

SickHippie
fuente
1
para el registro, está utilizando una hoja de cálculo, no una base de datos (se refiere a una base de datos en su pregunta original)
horatio
No, utilicé un volcado CSV de la base de datos en cuestión para reconstruir algunas columnas corruptas. Edité el CSV en OpenOffice, agregué estas fórmulas a una serie de nuevas columnas, pegué los valores que resultaron en la columna de estado original, eliminé las columnas de fórmulas, guardé el CSV nuevamente e importé nuevamente a la base de datos.
SickHippie
1

A corto plazo, puede importar una lista nueva y actualizada de códigos postales a los Estados utilizando una fuente calificada como el Centro de Servicios de Medicare y Medicare. Esto está orientado a los datos del pagador y se mantiene activamente. Después de eso, podría usar una tabla dinámica o manejar el trabajo a través de Open Office Base, y un poco de magia de SQL para crear una vista que podría descargar en Calc o CSV. ¿Qué tipo de DB está detrás de su sistema? ¿Qué tipo de instalación de importación está disponible?

Otra herramienta gratuita sería utilizar Quest TOAD para DA Freeware para unirse a las tablas. Esta es una opción muy fácil de usar con una pequeña curva de aprendizaje. Si se encuentra haciendo informes / plomería de datos, esta es una herramienta muy buena y vale la pena el costo de una licencia.

Vaya a https://www.cms.gov/prospmedicarefeesvcpmtgen/

Descargue el siguiente archivo zip: Código postal al archivo de localidad del operador [ZIP, 4.08MB] - Actualizado el 17/08/11

James
fuente
1

No he mirado el código postal CSV, pero estoy bastante seguro de que puedes usar una fórmula VLOOKUP () que revisa esos datos.

=VLOOKUP(zipcode,csvdata,column number for state relative to zip in csvdata,FALSE)
Excellll
fuente