Extraiga ZIP de la dirección usando DAX o PowerQuery

Un usuario Pregunto ✅

micody

Hola a todos,

Tiene un problema al analizar un código postal de un campo de dirección. La fuente de datos no tiene un campo de código postal dedicado y necesitamos extraer el código postal de una dirección postal completa. Por ejemplo, si tenemos una columna «dirección» con el siguiente texto, queremos extraer «20500» en una nueva columna calculada. También debemos considerar que el formato de las entradas de dirección no es necesariamente consistente (es decir, las comas no siempre están en el mismo lugar, la dirección no siempre está en el mismo orden).

Idealmente, lo que queremos hacer es extraer un número de 5 dígitos de una cadena.

«1600 Pennsylvania Avenue NW, Washington, DC 20500, Estados Unidos» = «20500» usando una fórmula

Gracias por adelantado,

MK

DatosZoe

@MiCody Puede hacer algunas búsquedas de python o R regex e incluirlas en su consulta de poder como una opción. Lo abordaría un poco más simple primero y analizaría los datos a la derecha de la primera coma, luego simplemente mantendría solo los valores numéricos.

DatosZoe_2-1611783624730.png

Puede ver eso al pegar esto en el editor avanzado de una consulta en blanco:

dejar
Fuente = Table.FromRows (Json.Document (Binary.Decompress (Binary.FromText ( «i45WMjQzMFAISM3LK67MKUvMy0xUcCxLzStNVfAL11EITyzOyMxLL8nP01FwcVYwMjA1MNBRCM3LLElNUQguSSxJLVaK1SHDEEK6qG0zbjNiAQ ==», BinaryEncoding.Base64), Compression.Deflate)), y mucho _t = ((escribir texto anulable meta) [Serialized.Text = true]) en la tabla de tipos [Column1 = _t]),
#»Tipo cambiado» = Table.TransformColumnTypes(Source,{{«Column1», type text}}),
#»Columna duplicada» = Table.DuplicateColumn(#»Tipo cambiado», «Columna1», «Columna1 – Copiar»),
#»Texto extraído después del delimitador» = Table.TransformColumns(#»Columna duplicada», {{«Columna1 – Copiar», cada Text.AfterDelimiter(_, «,»), escriba texto}}),
#»Dividir columna por transición de carácter» = Table.SplitColumn(#»Texto extraído después del delimitador», «Columna1 – Copiar», Splitter.SplitTextByCharacterTransition((c) => not List.Contains({«0»..»9″ }, c), {«0»..»9″}), {«Columna1 – Copia.1», «Columna1 – Copia.2»}),
#»Dividir columna por transición de caracteres1″ = Table.SplitColumn(#»Dividir columna por transición de caracteres», «Columna1 – Copiar.2», Splitter.SplitTextByCharacterTransition({«0»..»9″}, (c) => no List.Contains({«0»..»9″}, c)), {«Columna1 – Copiar.2.1», «Columna1 – Copiar.2.2»}),
#»Columnas eliminadas» = Table.RemoveColumns(#»Dividir columna por transición de carácter1″,{«Columna1 – Copiar.1», «Columna1 – Copiar.2.2»}),
#»Columnas renombradas» = Table.RenameColumns(#»Columnas eliminadas»,{{«Columna1 – Copiar.2.1», «Zip»}})
en
#»Columnas renombradas»

Ashish_Mathur

Hola,

Intente usar la columna Calculada por ejemplos.

parar2k

@MiCody dado que su dirección no siempre es la misma, revise esta publicación y vea si puede modificarla para satisfacer sus necesidades.

Revisa mi última publicación en el blog Comparar escenarios presupuestados frente a reales me gustaría Prestigio si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para dar Kudos a quien haya ayudado a resolver su problema. ¡Es una muestra de agradecimiento!

Visitanos en https://perytus.com, su ventanilla única para proyectos/capacitación/consultoría relacionados con Power BI.

DatosZoe

@MiCody Puede hacer algunas búsquedas de python o R regex e incluirlas en su consulta de poder como una opción. Lo abordaría un poco más simple primero y analizaría los datos a la derecha de la primera coma, luego simplemente mantendría solo los valores numéricos.

DatosZoe_2-1611783624730.png

Puede ver eso al pegar esto en el editor avanzado de una consulta en blanco:

dejar
Fuente = Table.FromRows (Json.Document (Binary.Decompress (Binary.FromText ( «i45WMjQzMFAISM3LK67MKUvMy0xUcCxLzStNVfAL11EITyzOyMxLL8nP01FwcVYwMjA1MNBRCM3LLElNUQguSSxJLVaK1SHDEEK6qG0zbjNiAQ ==», BinaryEncoding.Base64), Compression.Deflate)), y mucho _t = ((escribir texto anulable meta) [Serialized.Text = true]) en la tabla de tipos [Column1 = _t]),
#»Tipo cambiado» = Table.TransformColumnTypes(Source,{{«Column1», type text}}),
#»Columna duplicada» = Table.DuplicateColumn(#»Tipo cambiado», «Columna1», «Columna1 – Copiar»),
#»Texto extraído después del delimitador» = Table.TransformColumns(#»Columna duplicada», {{«Columna1 – Copiar», cada Text.AfterDelimiter(_, «,»), escriba texto}}),
#»Dividir columna por transición de carácter» = Table.SplitColumn(#»Texto extraído después del delimitador», «Columna1 – Copiar», Splitter.SplitTextByCharacterTransition((c) => not List.Contains({«0»..»9″ }, c), {«0»..»9″}), {«Columna1 – Copia.1», «Columna1 – Copia.2»}),
#»Dividir columna por transición de caracteres1″ = Table.SplitColumn(#»Dividir columna por transición de caracteres», «Columna1 – Copiar.2», Splitter.SplitTextByCharacterTransition({«0»..»9″}, (c) => no List.Contains({«0»..»9″}, c)), {«Columna1 – Copiar.2.1», «Columna1 – Copiar.2.2»}),
#»Columnas eliminadas» = Table.RemoveColumns(#»Dividir columna por transición de carácter1″,{«Columna1 – Copiar.1», «Columna1 – Copiar.2.2»}),
#»Columnas renombradas» = Table.RenameColumns(#»Columnas eliminadas»,{{«Columna1 – Copiar.2.1», «Zip»}})
en
#»Columnas renombradas»

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *