6 febrero, 2025

UTILIZANDO POWER QUERY PARA CREAR CONSULTAS Y FORMATEAR DATOS

Hola a todos!:

Ayer publicaba un post en el que indicaba cómo podemos localizar una columna y formatear datos utilizando los métodos range.find y range.column en VBA: UTILIZANDO MÉTODO RANGE.FIND PARA LOCALIZAR COLUMNA Y FORMATEAR DATOS

Evidentemente (y como ya indicaba) el ejercicio propuesto lo podíamos resolver con otros procedimientos y lenguajes. Y eso es lo que voy a hacer, hoy será con Power Query.

Por lo que, al igual que en el anterior ejercicio, a partir de un rango de datos, vamos a extraer y transformar tres campos.

Estos serán, el ID, la EDAD y el SEXO.

Lo que vamos a hacer antes de nada es cargar la tabla en el editor de PQ

Y una vez lo tengamos, eliminaremos las columnas que no necesitamos, y dejamos el ID, la EDAD y el SEXO.

A continuación tenemos que crear 2 columnas con nueva información para la EDAD y el SEXO y eso lo podemos hacer o bien Agregando una columna personalizada o bien agregando una columna condicional. Para la EDAD lo haré con una columna personalizada:

El código:

if [EDAD] >=18 and [EDAD] <=25 then "18 a 25" else if [EDAD] >=26 and [EDAD] <=35 then "26 a 35" else if [EDAD] >=36 and [EDAD] <=45 then "36 a 45" else if [EDAD] >=46 and [EDAD] <=55 then "46 a 55" else if [EDAD] >=56 and [EDAD] <=65 then "56 a 65" else 0

Para el SEXO/GÉNERO lo haré con una columna condicional:

Una vez que hemos definido estos paso en nuestro editor, ya podemos pasar la información a la segunda hoja y mostrar los datos que necesitamos.

Obviamente, debemos ocultar las columnas iniciales de EDAD y SEXO y el resultado es este:

El código completo en lenguaje M:

let
    Origen = Excel.CurrentWorkbook(){[Name="Tabla1"]}[Content],
    #"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"ID", Int64.Type}, {"NOMBRE COMPLETO", type text}, {"SECCION", type text}, {"EDAD", Int64.Type}, {"SEXO", type text}, {"2 º IDIOMA", type text}, {"ESTUDIOS", type text}}),
    #"Otras columnas quitadas" = Table.SelectColumns(#"Tipo cambiado",{"ID", "EDAD", "SEXO"}),
    #"Personalizada agregada" = Table.AddColumn(#"Otras columnas quitadas", "EDAD.1", each if [EDAD] >=18 and [EDAD] <=25 then "18 a 25" else if [EDAD] >=26 and [EDAD] <=35 then "26 a 35" else if [EDAD] >=36 and [EDAD] <=45 then "36 a 45" else if [EDAD] >=46 and [EDAD] <=55 then "46 a 55" else if [EDAD] >=56 and [EDAD] <=65 then "56 a 65" else 0),
    #"Personalizada agregada1" = Table.AddColumn(#"Personalizada agregada", "GENERO", each if [SEXO]="HOMBRE" then "MASCULINO" else "FEMENINO"),
    #"Columnas quitadas" = Table.RemoveColumns(#"Personalizada agregada1",{"EDAD", "SEXO"}),
    #"Columnas con nombre cambiado" = Table.RenameColumns(#"Columnas quitadas",{{"EDAD.1", "EDAD"}})
in
    #"Columnas con nombre cambiado"

Espero que os sea de utilidad!!

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies