Forum Discussion
Modelado de datos
Hola a todos
Tengo algunas preguntas sobre mi modelo de datos.
Recupero los datos con este diseño:
1) ¿Puede confirmar que es necesario fusionar en Power Query las columnas Equipment_Type y Equipment_Name para tener una tabla con solo 3 columnas?
2) ¿Es necesario crear tablas de dos dimensiones (Tipo de equipo y Nombre del equipo)? o solo uno (Nombre del equipo con una columna de tipo de equipo en su interior)?
Archivo PBI :
https://drive.google.com/file/d/1k9hM21LY21gk_umZPBAetl2gL_q5UiCq/view?usp=sharing
Gracias por su ayuda
3 Replies
- Syndicate_AdminAdministrator
1) ¿Quieres decir que estás buscando una técnica para dividir la tabla en 3 columnas? Busque en el foro columnas de Unpivot. Puede cortar los números usando splitcolumnbydelimiter y luego pivotar para obtener 3 o 4 columnas. Habrá muchos ejemplos (en el foro de Power Query)
Si desea hacerlo anexando tablas en su lugar: cree 3 versiones de la tabla, haga que cada versión tenga 3 columnas eliminando 2 columnas no deseadas, edite los nombres de las columnas para que sean iguales y, a continuación, agregue 3 tablas
2) Parece que una tabla de dimensiones (es decir, un tipo de equipo = un nombre de equipo) debería ser buena.
- Syndicate_AdminAdministrator
Hola
Reproduzco su caso de uso
1) Confirmo, necesita limpiar la tabla y tener solo 3 columnas. Agregué el código M para lograr esto aquí abajo.
2) No es necesario tener 2 tablas dimensionales.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCgjydwl1DlFwVNJRcg0M9QwwBDL8HH1dQTQCxeoglDrBhcEajKAajLAodUYxBKrBGKrBGEWpC/EOcCXggFgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Item = _t, Equipment_Type1 = _t, Equipment_Name1 = _t, Equipment_Type2 = _t, Equipment_Name2 = _t, Equipment_Type3 = _t, Equipment_Name3 = _t]), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Item"}, "Attribute", "Value"), #"Filtered Rows" = Table.SelectRows(#"Unpivoted Other Columns", each ([Value] <> "")), #"Split Column by Character Transition" = Table.SplitColumn(#"Filtered Rows", "Attribute", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Type", "Index"}), #"Removed Numeric" = Table.TransformColumns(#"Split Column by Character Transition", {"Type", each Text.Select(_, {"A".."Z","a".."z"}), type text}), #"Pivoted Column" = Table.Pivot(#"Removed Numeric", List.Distinct(#"Removed Numeric"[Type]), "Type", "Value"), #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column", {{"EquipmentType", "Equipment Type"}, {"EquipmentName", "Equipment Name"}}), #"Removed Columns" = Table.RemoveColumns(#"Renamed Columns",{"Index"}) in #"Removed Columns"Si está respondiendo a su consulta, marque mi respuesta como la solución. ¡Gracias!
- Syndicate_AdminAdministrator
Muchas gracias @Alex87