Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Estoy intentando crear una tabla personalizada en Power BI con DAX. Cada celda de la tabla consta del valor de un campo diferente de la tabla de origen de datos que cargué (como una consulta SQL que usa subconsultas para crear la tabla) cuando se filtra a un valor específico en la columna principal. Una de las columnas que necesito crear incluye porcentajes, números enteros y decimales. Es por eso que los convertí todos en campos de texto porque (por lo que entiendo) Power BI no puede crear una tabla personalizada con una columna que no tenga un tipo de datos uniforme. He probado varias formas diferentes de crear esta tabla en DAX, pero me he dado cuenta de que todas las funciones para crear una tabla personalizada no le permitirán usar columnas de valores de texto. Puede agregar columnas con valores de escalador, pero si usa columnas de texto, genera un error que le indica que requiere una columna de escalador. ¿Hay alguna forma de evitar esto en Power BI? ¿Puedo crear una tabla personalizada utilizando los valores de los campos de texto?
La tabla que quiero crear tiene la siguiente estructura:
Filtro: Campo 7 de la fuente de datos = "A"
Col 1 Col 2 Col 3
Campo de texto manual 1 de la fuente de datos Campo 2 de la fuente de datos
Campo de texto manual 3 de la fuente de datos Campo 4 de la fuente de datos
Campo de texto manual 5 de la fuente de datos Campo 6 de la fuente de datos
Digamos que este es el archivo de la fuente de datos (todos los datos ficticios: formato de porcentaje de los campos 1 y 6, formato decimal de los campos 2 y 5, formato entero de los campos 3 y 4):
Campo 1 | Campo 2 | Campo 3 | Campo 4 | Campo 5 | Campo 6 | Campo 7 |
5.7% | 3.2 | 6 | 11 | 99.8 | 52% | A |
6.2% | 22.4 | 9 | 34 | 33.7 | 47% | B |
9.3% | 21.6 | 7 | 27 | 60.5 | 22% | C |
4.9% | 4.6 | 2 | 18 | 23.6 | 72% | D |
A continuación, quiero crear una tabla en DAX que adopte este formato con la consulta:
Segmentación establecida en: Campo 7 = B
Col 1 | Col 2 | Col 3 |
"Texto que agrego manualmente 1" | 6.2% | 22.4 |
"Texto que agrego manualmente 2" | 9 | 34 |
"Texto que añado manualmente 3" | 33.7 | 47% |
Como puede ver, estoy apilando diferentes tipos de datos en la misma columna de esta manera, lo que está causando el problema. La solución deseada es una manera de lograr una tabla como esta mediante alguna función DAX. ¡Cualquier ayuda que pueda proporcionar es muy apreciada!
Hola @RNd32m6,
Me gustaría sugerirle que haga 'desdinamizar columna' en los campos de la tabla y use el campo 7' como grupo. A continuación, puede usar el "campo 7" como "Fila", el atributo como "Columna" y el valor como "Valor" para crear objetos visuales de matriz.
Anular dinamización de columnas - Power Query | Microsoft Learn
Puede filtrar por el campo de atributo para controlar los campos displidados y establecer la cadena de formato en función del valor actual del campo de atributo.
Saludos
Xiaoxin Sheng
¡Gracias por el consejo! Probé su solución y funciona para apilar todo en una columna. Sin embargo, tengo problemas para intentar crear tres columnas. En este momento, mis datos se ven así:
Col 1 | Col 2 |
Texto 1 | Campo 1 |
Texto 1 | Campo 2 |
Texto 1 | Campo 3 |
Texto 1 | Campo 4 |
Texto 1 | Campo 5 |
Texto 1 | Campo 6 |
Texto 2 | Campo 1 |
Texto 2 | Campo 2 |
Texto 2 | Campo 3 |
Texto 2 | Campo 4 |
Texto 2 | Campo 5 |
Texto 2 | Campo 6 |
Texto 3 | Campo 1 |
Texto 3 | Campo 2 |
Texto 3 | Campo 3 |
Texto 3 | Campo 4 |
Texto 3 | Campo 5 |
Texto 3 | Campo 6 |
¿Sabes cómo puedo pivotarlo en tres columnas en lugar de una? Más cosas como esta:
Col 1 | Col 2 | Col 3 | Col 4 |
Texto 1 | Campo 1 | Campo 2 | Campo 3 |
Texto 1 | Campo 4 | Campo 5 | Campo 6 |
Texto 2 | Campo 1 | Campo 2 | Campo 3 |
Texto 2 | Campo 4 | Campo 5 | Campo 6 |
Texto 3 | Campo 1 | Campo 2 | Campo 3 |
Texto 3 | Campo 4 | Campo 5 | Campo 6 |
Hola @RNd32m6 ,
Aquí está el código de consulta M completo que usó estructuras de tabla de transformación, puede probarlo si ayuda:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bc0hDoAwFATRq5Cva9gFjsAJcE0dFU2QFT0+OEgYNxnzco6jjj7NkWJv9TqfKuk3RdM0F5orze2dIl2ki3SRLtJFukk36SbdpJt0f/VyAw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Col 1" = _t, #"Col 2" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Col 1", type text}, {"Col 2", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Col 1"}, {{"Cont", each List.Transform(List.Split(_[Col 2], List.Count(_[Col 2])/2),each Text.Combine(_,",")), type list}}),
#"Expanded Cont" = Table.ExpandListColumn(#"Grouped Rows", "Cont"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Expanded Cont", "Cont", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Col 2", "Col 3", "Col 4"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Col 1", type text}, {"Col 2", type text}, {"Col 3", type text}, {"Col 4", type text}})
in
#"Changed Type1"
Aviso: esta nueva estructura de tabla puede no ser adecuada para trabajar con la solución que proporciono anteriormente.
Saludos
Xiaoxin Sheng
Hola @RNd32m6 ,
¿Puede compartir un pbix o algunos datos ficticios que mantengan la estructura de datos sin procesar con los resultados esperados? Debería ayudarnos a aclarar su escenario y probar la fórmula de codificación.
Cómo obtener respuestas rápidas a tu pregunta
Saludos
Xiaoxin Sheng
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Ask questions in Eventhouse and KQL, Eventstream, and Reflex.