March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
¡Hola! Soy un principiante total en PowerBI y estoy atascado en este tema por un día y realmente no puedo averiguar esto y realmente necesitaría su ayuda!
Este es un problema bastante elemental y probablemente ha sido respondido antes, pero he estado buscando y no puedo encontrar nada y aquí estoy. ¡Cualquier ayuda será muy apreciada!
Tengo este conjunto de datos (Tabla1): Cada fila representa un viaje al supermercado.
supermercado | Bienes comprados | Cantidad de jan21 | Gastos de enero | Cantidad de febrero de 21 | Gastos de febrero | Cantidad de mar... |
A | Mueble | 1 | $300 | 2 | $400 | ... |
A | comestibles | 8 | $80 | 13 | $110 | ... |
A | especias | 5 | $50 | 4 | $30 | ... |
B | Mueble | 1 | $250 | 1 | $260 | ... |
B | comestibles | 12 | $110 | 15 | $130 | ... |
B | especias | 2 | $15 | 3 | $25 | ... |
Lo que me gustaría obtener sería:
periodo | Mueble | comestibles | especias | Cantidad total | Gasto total | % De cambio |
Jan21 | $550 | $190 | $65 | 29 | $805 | - |
Febrero 21 | $660 | $240 | $55 | 38 | $995 | 23.6% |
Mar21 | ... | ... | ... | ... | ... | ... |
Abr21... | ... | ... | ... | ... | ... | ... |
Mi intento hasta ahora me produce la columna cantidad total y gastos utilizando un DAX de la siguiente manera:
Nombre de tabla =
Unión(
Fila ( "Período", "2021-01", "Cantidad total", Suma ( Tabla1[Cantidad ene21] ), "Gasto total", Suma ( Cuadro1[Gastos ene21] ), ),
Fila ( ....
)
¿Hay una manera más fácil de hacer esto y cómo escribo un DAX para filtrar los diferentes tipos de Good Purchased y para el % de cambio?
¡Muchas gracias!
Solved! Go to Solution.
Publicaré el código (que puede colocar en el Editor avanzado en Power Query). Esto te confundirá o te inspirará. Esperemos que sea este último.
Básicamente no estarás despreocupando los pares de columnas. Para ello necesita coherencia en el nombre de pares, por ejemplo, Jan21 para 2 columnas o Enero para 2 columnas.
Aquí está el código:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bY0xDoAgDEXvQhwZLIhx1UEP4EiYCAOLGpT729KoDA5NX/Jf/rdWjEKKOactXjkFZMBrdNviU4QdopPsLWn3IcVwIg8UDqSBJgT4vPWIvkiGEkNSx7VFmf4mVdEY+8+rJ0E9Q8ilGqrGd5QtyjUXC+du", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [SuperMarket = _t, #"Goods Purchased" = _t, #"Jan21 Quantity" = _t, #"Jan Expenditure" = _t, #"Feb21 Quantity" = _t, #"Feb Expenditure" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"SuperMarket", type text}, {"Goods Purchased", type text}, {"Jan21 Quantity", Int64.Type}, {"Jan Expenditure", type text}, {"Feb21 Quantity", Int64.Type}, {"Feb Expenditure", type text}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"SuperMarket", "Goods Purchased"}, "Attribute", "Value"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Attribute.1", "Attribute.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Attribute.1", type text}, {"Attribute.2", type text}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type1","21","",Replacer.ReplaceText,{"Attribute.1"}),
#"Pivoted Column" = Table.Pivot(#"Replaced Value", List.Distinct(#"Replaced Value"[Attribute.2]), "Attribute.2", "Value"),
#"Replaced Value1" = Table.ReplaceValue(#"Pivoted Column","$","",Replacer.ReplaceText,{"Expenditure"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Replaced Value1",{{"Expenditure", Int64.Type}, {"Quantity", Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type2",{{"Attribute.1", "Period"}})
in
#"Renamed Columns"
Se ve complejo, pero todo se hizo con el ratón + interfaz.
Vea si puede aplicar sus datos. No estaré por aquí por unas horas pero te animo a resolverlo y publicar más tarde si estás luchando.
Hay muchos ejemplos de foros de pares no apresivos. Avísame cómo va
Bueno, parece que tus datos reales son una situación más compleja.
Estas son mis sugerencias:
1. Usando las primeras 6 columnas de los datos de ejemplo que proporcionó, aplique el código que proporcionó. A ver si puedes hacer que funcione. Mira cada paso para ver qué está pasando. Comprenda la estrategia (básicamente remodelando los datos seleccionando 2 columnas fijas y desapretando los pares) y vea cómo cada paso le lleva allí.
La remodelación de los datos en Power Query le permite empezar a obtener datos que powerbi le gustan, es decir, columnar y desde allí puede empezar a investigar esquemas de estrellas.
2. Cierre y aplique la consulta de energía. Vea si puede crear un objeto visual de matriz con los datos remodelados. Si eso funciona, vaya a 3.
----------------------
3. Con sus datos reales, inicie un prototipo deshaciéndose del 90% de las columnas. Hazlo simple. Si los datos son como el ejemplo que proporcionó, está en un buen comienzo. Si ahora te das cuenta de que has hecho la pregunta equivocada, vuelve a publicar nuevos datos y requisitos de muestra (estarás más cerca de una solución y has aprendido mucho)
4. No creo que el artículo sqlbi sea un buen lugar para que usted comience - es una técnica avanzada y resuelve un problema específico
5. Es muy poco probable que vaya a encontrar una página web con "La solución" - trate de entender sus datos y cuáles son sus resultados deseados.
Buena suerte.
¡eh!
Me tomó un tiempo seguir sus pasos, pero me las arreglé para obtener el resultado deseado que quería. Reducí el número de categorías a 2 y realmente ayudó.
Realmente apreciar su esfuerzo y tiempo para ayudarme! Salud Mate 🙂
Publicaré el código (que puede colocar en el Editor avanzado en Power Query). Esto te confundirá o te inspirará. Esperemos que sea este último.
Básicamente no estarás despreocupando los pares de columnas. Para ello necesita coherencia en el nombre de pares, por ejemplo, Jan21 para 2 columnas o Enero para 2 columnas.
Aquí está el código:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bY0xDoAgDEXvQhwZLIhx1UEP4EiYCAOLGpT729KoDA5NX/Jf/rdWjEKKOactXjkFZMBrdNviU4QdopPsLWn3IcVwIg8UDqSBJgT4vPWIvkiGEkNSx7VFmf4mVdEY+8+rJ0E9Q8ilGqrGd5QtyjUXC+du", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [SuperMarket = _t, #"Goods Purchased" = _t, #"Jan21 Quantity" = _t, #"Jan Expenditure" = _t, #"Feb21 Quantity" = _t, #"Feb Expenditure" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"SuperMarket", type text}, {"Goods Purchased", type text}, {"Jan21 Quantity", Int64.Type}, {"Jan Expenditure", type text}, {"Feb21 Quantity", Int64.Type}, {"Feb Expenditure", type text}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"SuperMarket", "Goods Purchased"}, "Attribute", "Value"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Attribute.1", "Attribute.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Attribute.1", type text}, {"Attribute.2", type text}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type1","21","",Replacer.ReplaceText,{"Attribute.1"}),
#"Pivoted Column" = Table.Pivot(#"Replaced Value", List.Distinct(#"Replaced Value"[Attribute.2]), "Attribute.2", "Value"),
#"Replaced Value1" = Table.ReplaceValue(#"Pivoted Column","$","",Replacer.ReplaceText,{"Expenditure"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Replaced Value1",{{"Expenditure", Int64.Type}, {"Quantity", Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type2",{{"Attribute.1", "Period"}})
in
#"Renamed Columns"
Se ve complejo, pero todo se hizo con el ratón + interfaz.
Vea si puede aplicar sus datos. No estaré por aquí por unas horas pero te animo a resolverlo y publicar más tarde si estás luchando.
Hay muchos ejemplos de foros de pares no apresivos. Avísame cómo va
Traté de despivot toda mi tabla, pero no tengo una columna fija que pueda utilizar como pivote (Muchos ejemplos de tiempo de uso en línea, pero Im pivotar la columna time(monthly) también)
Mis disculpas, pero todavía soy muy nuevo y todo el proceso no es intuitivo para mi cerebro tonto.
Otro problema que enfrenté fue con la cantidad loca de categorizaciones (esto es un dato de maqueta, el real tiene como 4-5 columnas de categoría y cada uno tiene diferentes categorías como geolocalización, nombres de supermercados, varios productos, etc). Si incluye cada uno de los datos del mes, llegó hasta 100 columnas desde que tengo >5 años de datos.
A efectos de análisis, creo que lo que quiero lograr es similar a esto:
https://www.sqlbi.com/articles/filtering-and-comparing-different-time-periods-with-power-bi/
donde puedo hacer comparaciones entre diferentes categorías en relación con el tiempo.
¿Tiene que ser DAX? Sería más fácil en Power Query remodelar los datos y luego usar una matriz para mostrar
Correcto... No tiene que ser DAX. Estaba demasiado obsesionado con ese 😅
¿Tienes alguna sugerencia sobre cómo hacerlo?
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.