martes, 27 de agosto de 2019

Power Query: Agregar Columna a partir de un ejemplo

Tiempo atrás, en un par de artículos del blog, expuse algunas maneras de recuperar información de una cadena de texto, la cual no seguía un patrón claro a la hora de la 'extracción' de caracteres.
Ver post1 y post2

Te recomiendo les eches un vistazo... ;-)


En el día de hoy emplearemos una herramienta muy potente para conseguir similares resultados, sin duda muy potente y versátil: Agregar columna a partir de los ejemplos

Esta herramienta trabaja de forma casi idéntica al Relleno rápido en la hoja de cálculo.

Iniciaremos a partir de un listado de alfanuméricos, de los cuales necesitamos separar la primera parte de dichas cadenas que sean caracteres de texto:

Power Query: Agregar Columna a partir de un ejemplo



Como siempre, en un primer paso Cargaremos la Tabla de datos en el Editor de consultas de Power Query.
Una vez cargados los datos, y dentro del Editor de consultas, accederemos a la Ficha Agregar columna > grupo General > botón Columna a partir de los ejemplo

Power Query: Agregar Columna a partir de un ejemplo



Seleccionaremos la columna a tratar y elegiremos la opción del botón desplegable: A partir de la selección.
esto abrirá el Asistente, con una columna 'personalizada' donde iremos completando cuantos elementos sean necesarios hasta visualizar los elementos como necesitáramos.

Por ejemplo, para el primer elemento (A1234PQ) escribimos una A, y el asistente propone como regla o patrón: caracteres por la izquierda hasta el '1'.

Power Query: Agregar Columna a partir de un ejemplo


Como el resultado no es el esperado completaremos el segundo elemento (MX51234R) con MX, proponiendo como regla para mis datos: eliminar caracteres del 1 al 5 y de la P a la R

Power Query: Agregar Columna a partir de un ejemplo


Seguimos lejos del resultado buscado.
Así que informamos para el tercer elemento(MS612345AB) con un MS, lo que marca una regla un poco compleja a base de separadores... que en cualquier caso no responde a nuestro objetivo.

Power Query: Agregar Columna a partir de un ejemplo


Seguimos con el proceso...
ciertamente podrías pensar que para hacer elemento a elemento no necesitamos Power Query, pero piensa en un listado de 50.000 registros con elementos sin un patrón claro.


Repetimos el proceso una vez más para el quinto elemento (OPA7123456VW) donde indicamos como respuesta OPA... y las propuestas restantes sí parecen responder a lo que queremos.

Power Query: Agregar Columna a partir de un ejemplo



Aceptamos la fórmula propuesta. Podemos verla desde el Editor avanzado:
let
    Origen = Excel.CurrentWorkbook(){[Name="Tabla1"]}[Content],
    #"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"datos", type text}}),
    #"Added Custom Column" = Table.AddColumn(#"Tipo cambiado", "Personalizado", 
            each let splitdatos = Splitter.SplitTextByCharacterTransition((c) => 
            not List.Contains({"0".."9"}, c), {"0".."9"})([datos]) in splitdatos{0}?, type text)
in
    #"Added Custom Column"

Cargamos y cerramos la consulta y la llevamos a la hoja de cálculo, viendo el resultado.

Además, al añadir nuevos elementos comprobamos cómo el funcionamiento de ésta consulta es correcto.

Power Query: Agregar Columna a partir de un ejemplo



Al fin y al cabo el asistente, con nuestras pistas ha sido de encontrar la regla, patrón o pauta deseada para devolvernos los caracteres hasta el primer caracter numérico.

De forma similar podríamos obtener la parte final, o la parte numérica intermedia.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.