Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Pregunta de nivel muy principiante: Grafique el presupuesto cuando varios años de presupuesto están en una sola fila

Hola

Disculpas por esta pregunta tan simple, simplemente no puedo entenderlo.

Tengo datos que en la forma más básica es este:

ArtículoNombre Presupuesto en N-1 Presupuesto en N Presupuesto en N+1 Presupuesto en N+2 (Donde N = el año en curso)

Actualización de PC 15 20 25 0

Comprar ratones 5 0 5 0

Nuevos portátiles 30 40 50 60

Me gustaría ver un gráfico con en el eje X el año (ya sea N-1,N, N+1,N+2 o incluso mejor 2021, 2022, 2023, 2024)

Y en el eje Y la suma del presupuesto de las filas actualmente filtradas. El filtrado se produce haciendo clic en el usuario en otras visualizaciones.

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola @Jamie9979 ,

Según mi interpretación de su requisito, está buscando algo como esto:

PC2790_0-1652796669160.png

En caso afirmativo, así es como lo logré:

1) En Power Query, no he votado las columnas que tienen presupuesto

2) Divido los nombres de las columnas para derivar el año

3) Cambiar el nombre de las columnas con nombres significativos y eliminar la columna no deseada.

El código M tiene el siguiente aspecto:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCi1IL0pMycxLVwhwjik1MDAyL1bSUTI0BRJGBiACxDJQitWJVnIqrQSpy81MTgWKQcRhNEjeL7VcISexoCS/AGSEMUjSBKwCRJgB1cQCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Article = _t, #"Budget 2021" = _t, #"Budget 2022" = _t, #"Budget 2023" = _t, #"Budget 2024" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Article", type text}, {"Budget 2021", Int64.Type}, {"Budget 2022", Int64.Type}, {"Budget 2023", Int64.Type}, {"Budget 2024", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Article"}, "Attribute", "Value"),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Columns", "Attribute", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Attribute.1", "Attribute.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Attribute.1", type text}, {"Attribute.2", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Attribute.2", "Year"}, {"Value", "BudgetValue"}}),
    #"Removed Columns" = Table.RemoveColumns(#"Renamed Columns",{"Attribute.1"})
in
    #"Removed Columns"

Además, adjunte el archivo pbix aquí para su referencia.

Esa es una solución interesante, ¿es viable cuando se trata de miles de artículos?

Siempre he pensado que debería tener más filas que columnas en un conjunto de datos.

Si se agregaran más elementos, tendría que seguir extendiendo la cantidad de columnas, lo que para mi cerebro principiante parece algo extraño, ¿no?

Si está probando esto en los datos de ejemplo que ha compartido, funcionaría bien hasta que se agreguen las filas y no haya ningún cambio en el nombre de las columnas.
Los pasos no están codificados, pero los nombres de columna sí. Si cambia un nombre en su origen de datos, esto dejará de funcionar y luego también tendrá que modificar esos nombres de columna aquí.

No hay codificación rígida de columnas aquí.

El código recogerá los últimos datos automáticamente sin intervención manual en absoluto.

Puedes intentarlo una vez. 🙂

Syndicate_Admin
Administrator
Administrator

¡Hi! @Jamie9979

Por favor, vea si esto ayuda.

AnkitKukreja_0-1652796332985.png

Entonces, por favor, despivot sus columnas. Puede consultar el código m que he compartido a continuación.
dejar
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCi1IL0pMycxLVwhwjik1MDAyL1bSUTI0BRJGBiACxDJQitWJVnIqrQSpy81MTgWKQcRhNEjeL7VcISexoCS/AGSEMUjSBKwCRJgB1cQCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, #"2021" = _t, #"2022" = _t, #"2023" = _t, #"2024" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"2021", Int64.Type}, {"2022", Int64.Type}, {"2023", Int64.Type}, {"2024", Int64.Type}}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"2021", "2022", "2023", "2024"}, "Attribute", "Value"),
#"Columnas renombradas" = Table.RenameColumns(#"Unpivoted Only Selected Columns",{{"Atributo", "Year"}})
en
#"Columnas renombradas"

Si está buscando algo más, le pediría que comparta una muestra de pbix con la solución requerida.



De lo contrario, pediría

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.