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.
¡¡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