Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

Salario en función del año

Source Community: Power BI | Source Author Name: Patop

Hola

Tengo 4 columnas en una tabla correspondiente al salario de 2018, el salario de 2019 hasta 202 dependiendo de diferentes personas.

También tengo una tabla que contiene fechas de 2018 a 2021.

Me gustaría crear un mesure que sumará y mostrará el salario dependiendo de las fechas de mi columna.

Como si la fecha es 2021, sumo las columnas salario de 2021, si la fecha es 2018, hago lo mismo pero con la columna 2018

Por lo tanto, me gustaría que alguien pensara así

Patop_0-1650357218495.png

Muchas gracias

Ten un buen día

1 ACCEPTED SOLUTION

Source Community: Power BI | Source Author Name: PC2790
Syndicated - Inbound

Aquí tienes:

Pasos a seguir en alto nivel:

  1. Unpivot todas las columnas excepto "ID"
  2. Divida la nueva columna "Atributo" usando el delimitador "". Creará dos columnas -Atributo y Año
  3. Vuelva a pivotar la columna "Atributo".

Código M como se muestra a continuación:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("dU9BDsAgCPsLZw846j5D/P83hsPEdM4DaRtKU9ylSpGqqgFXwkcNGmMxkF78VXMJsuJ0MZjl0loCqf0CwchJYve31Rv0xbHTveJA4fjt1B8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"Salary 2018" = _t, #"Salary 2019" = _t, #"Salary 2020" = _t, #"Salary 2021" = _t, #"Income 2018" = _t, #"Income 2019" = _t, #"Income 2020" = _t, #"Income 2021" = _t]),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"ID"}, "Attribute", "Value"),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Attribute", "Year"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Value", Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(#"Changed Type1", List.Distinct(#"Changed Type1"[Attribute]), "Attribute", "Value")
in
    #"Pivoted Column"

La tabla se ve así:

PC2790_1-1650443238546.png

Y simplemente visualízalo en forma de tabla:

PC2790_0-1650443041351.png

Espero que esto funcione para ti.

Por favor, proporcione un elogio a esta respuesta si la encontró interesante.

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a otros miembros a encontrarla más rápidamente.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: PC2790
Syndicated - Inbound

Tenga una DateTable con la que pueda crear una relación con su tabla principal.

Cree una medida llamada suma de salario como esta

Suma salarial = Suma(MainTable[Salario]) y luego visualícelo en su informe contra Año de DatesTable como se muestra a continuación:

PC2790_1-1650359599734.pngPC2790_2-1650359613093.png

Source Community: Power BI | Source Author Name: Patop
Syndicated - Inbound

Hola

Gracias por su respuesta, pero tengo 4 columnas de salario, así que no puedo sumarlas, creo, por ejemplo, tengo

Patop_0-1650359898714.png

y me gustaría usar mi segunda tabla donde tengo fechas para poder tener esto:

Patop_1-1650359988597.png

Donde las columnas de la derecha son la suma del salario correspondiente al año

Source Community: Power BI | Source Author Name: PC2790
Syndicated - Inbound

De acuerdo.. Ahora eso hace que el problema sea mucho más claro.

Necesitas despivotar las columnas aquí.

Vaya a Power Query y vaya al Editor avanzado y pegue este código allí después de eliminar el código existente:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY7BDcAwCAN34Z0HCU6XQey/RklRCryswwajSpMGTWZ2WSGVbCittNCCuAlxkJjJDil0EnBoToHj7+xF++LveHIX7dJHZi8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"Salary 2018" = _t, #"Salary 2019" = _t, #"Salary 2020" = _t, #"Salary 2021" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Salary 2018", Int64.Type}, {"Salary 2019", Int64.Type}, {"Salary 2020", Int64.Type}, {"Salary 2021", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"ID"}, "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}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Attribute.1"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute.2", "Year"}, {"Value", "Salary"}})
in
    #"Renamed Columns"

La tabla se vería así:

PC2790_0-1650374811778.png

Ahora puede visualizarlo en forma de tabla como se muestra a continuación:

PC2790_1-1650374885239.png

Source Community: Power BI | Source Author Name: Patop
Syndicated - Inbound

¡Muchas gracias!

y en caso de que tenga esto:

Patop_0-1650387340440.png

y quiero tener esto:

Patop_1-1650387353183.png

¿Qué debo cambiar en el código para tener este resultado?

Lo intenté pero no lo logré

¡Gracias!

Source Community: Power BI | Source Author Name: PC2790
Syndicated - Inbound

Aquí tienes:

Pasos a seguir en alto nivel:

  1. Unpivot todas las columnas excepto "ID"
  2. Divida la nueva columna "Atributo" usando el delimitador "". Creará dos columnas -Atributo y Año
  3. Vuelva a pivotar la columna "Atributo".

Código M como se muestra a continuación:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("dU9BDsAgCPsLZw846j5D/P83hsPEdM4DaRtKU9ylSpGqqgFXwkcNGmMxkF78VXMJsuJ0MZjl0loCqf0CwchJYve31Rv0xbHTveJA4fjt1B8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"Salary 2018" = _t, #"Salary 2019" = _t, #"Salary 2020" = _t, #"Salary 2021" = _t, #"Income 2018" = _t, #"Income 2019" = _t, #"Income 2020" = _t, #"Income 2021" = _t]),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"ID"}, "Attribute", "Value"),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Attribute", "Year"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Value", Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(#"Changed Type1", List.Distinct(#"Changed Type1"[Attribute]), "Attribute", "Value")
in
    #"Pivoted Column"

La tabla se ve así:

PC2790_1-1650443238546.png

Y simplemente visualízalo en forma de tabla:

PC2790_0-1650443041351.png

Espero que esto funcione para ti.

Por favor, proporcione un elogio a esta respuesta si la encontró interesante.

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a otros miembros a encontrarla más rápidamente.

Source Community: Power BI | Source Author Name: Patop
Syndicated - Inbound

Gracias que es perfecto

avatar user

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)