richardburling
Hola
Tengo un conjunto de datos que contiene direcciones completas pero necesito el código postal extraído en una columna separada. He logrado esto en Excel usando esta fórmula: –
= DERECHA (SUBSTITUTO (B2, «», «*», LEN (B2) -LEN (SUBSTITUTE (B2, «», «»)) – 1), LEN (B2) -FIND («*», SUBSTITUTE (B2 , «», «*», LEN (B2) -LEN (SUSTITUTO (B2, «», «»)) – 1)))
La dirección tiene el siguiente formato: –
221b Baker St, Londres, NW1 6XE
He buscado en los foros y hasta ahora no puedo encontrar nada que cumpla con el requisito. He visto cómo se hace desglosando la dirección usando las funciones del delimitador en el Editor Quary y luego combinando las dos partes del código postal para crear un código postal completo, pero idealmente me gustaría una columna para la dirección completa y una separada para el código postal. .
Espero que alguien pueda ayudar.
Gracias
Ricardo.
CNENFRNL
Wikipedia presenta códigos postales en el Reino Unido en detalle; lo suficientemente interesante, también se proporcionan expresiones regulares para la validación.
https://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom
Por lo tanto, es bastante fácil extraer códigos postales con las expresiones regulares mencionadas anteriormente,
let
RE = (regex as text, str as text) =>
let
html =
"<script>
var regex = " & regex & ";
var str = """ & str & """;
var res = str.match(regex);
document.write(res)
</script>",
res = Web.Page(html)[Data]{0}[Children]{0}[Children]{1}[Text]{0}
in res,
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XcyxCsIwFAXQX7lkztBEcE9t6aA4WCRCyBDJoxTTF0hT/H2Lg4P74TgntFZPtOFFBWOVuGSOmSWuVuH46IWXTqgGXX7zzNNOCtGPYbTKQBvzZUOhUHHb1pVS+pf2pFocukGi5ykFjhJ3nitFnPc35kV4/wE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Addr = _t]),
#"Added Custom" = Table.AddColumn(Source, "P.C.", each RE("/[A-Z]{1,2}[0-9][A-Z0-9]? ?[0-9][A-Z]{2}/gi", [Addr]))
in
#"Added Custom"
richardburling
En respuesta a CNENFRNL
@CNENFRNL gracias por tomarse el tiempo y hacer una sugerencia. Desafortunadamente, esto no es lo que estoy buscando.
Básicamente, creo que es una hoja de cálculo con más de 2000 direcciones y me gustaría separar el código postal de la cadena de direcciones. Básicamente, necesito que el Editor de consultas extraiga solo el código postal de la cadena de dirección y lo coloque en una nueva columna. Tampoco puede tener espacios ni comas en la columna. Obviamente, los códigos postales vienen en varios caracteres de longitud, por lo que no es solo un caso de usar el ‘Text.end ([Address], 8) ‘ya que esto recupera los últimos ocho caracteres.
Espero que tenga sentido.
Ricardo