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
tarocha
Helper II
Helper II

Ayuda con la consulta avanzada de energía

Hola

Soy nuevo en Power BI y tengo algunos problemas con Power Query.

Tengo el siguiente escenario tengo una tabla con 3 columnas, bacalao, cr y porcentaje.

En la columna porcentual la suma del bacalao siempre tiene que dar 100%.

Ejemplo, bacalao 1.
Tenemos 60% y el otro es nulo, así que lo que yo traería sería 40%, porque 100% - 60% - 40%.

Ejemplo, bacalao 3.
Tenemos 60% en la primera línea, 30% en la segunda línea y en la tercera línea me gustaría traer el 10% restante.

Necesito esto para trabajar en Power Query, probé algunas soluciones, pero no pude.

¿Me puedes ayudar?

El resultado espero que sea la columna D de la impresión de Excel.

414140iAC2DCC0F13C2FD09.png

Comparto el pbix que estoy usando en el siguiente enlace.

a.PNG


Enlace downalod pbix


Gracias

2 ACCEPTED SOLUTIONS
HotChilli
Super User
Super User

Probablemente sería más fácil cambiar el tipo de datos a decimal en lugar de tratar con el tipo de porcentaje, pero de todos modos esto es lo que hice.

Duplica la tabla.

COD 'Agrupar por' y sumar la columna Porcentaje. Llame a la nueva columna Agregar

Obtendrás esto

Screenshot 2020-12-10 203456.png

A continuación, agregue una columna personalizada para restar del 100%.

Utilice este código, en la fórmula:

Percentage.From("100%") -[Add]

Cambie el tipo a Porcentaje.

A continuación, puede combinar esta tabla con la tabla original (unirse en COD).

Expanda la columna Tabla para devolver solo la columna Personalizado de la 2a tabla.

Se verá así:

Screenshot 2020-12-10 204056.png

y desde allí se puede agregar una columna con lógica ''Si la columna Porcentaje es null use Tabla 2 personalizada else use Percent column"

Buena suerte.

View solution in original post

mahoneypat
Employee
Employee

Aquí hay otra manera de hacerlo. Utiliza un paso Modificar valores modificado para hacerlo en un solo paso. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación.

let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXIEYjMDVaVYHQjfCYjzSnNywAJGUAUWUAVG6AqM0UwwhiowRuI7wzXEAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Cod = _t, CR = _t, Percent = _t]),
    #"Tipo Alterado" = Table.TransformColumnTypes(Fonte,{{"Cod", Int64.Type}, {"CR", type text}, {"Percent", Percentage.Type}}),
    CustomReplace = Table.ReplaceValue(#"Tipo Alterado",null,each let thiscod = [Cod] in 1 - List.Sum(Table.SelectRows(#"Tipo Alterado", each [Cod] = thiscod)[Percent]),Replacer.ReplaceValue,{"Percent"}),
    #"Changed Type" = Table.TransformColumnTypes(CustomReplace,{{"Percent", Percentage.Type}})
in
    #"Changed Type"

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

4 REPLIES 4
mahoneypat
Employee
Employee

Aquí hay otra manera de hacerlo. Utiliza un paso Modificar valores modificado para hacerlo en un solo paso. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación.

let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXIEYjMDVaVYHQjfCYjzSnNywAJGUAUWUAVG6AqM0UwwhiowRuI7wzXEAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Cod = _t, CR = _t, Percent = _t]),
    #"Tipo Alterado" = Table.TransformColumnTypes(Fonte,{{"Cod", Int64.Type}, {"CR", type text}, {"Percent", Percentage.Type}}),
    CustomReplace = Table.ReplaceValue(#"Tipo Alterado",null,each let thiscod = [Cod] in 1 - List.Sum(Table.SelectRows(#"Tipo Alterado", each [Cod] = thiscod)[Percent]),Replacer.ReplaceValue,{"Percent"}),
    #"Changed Type" = Table.TransformColumnTypes(CustomReplace,{{"Percent", Percentage.Type}})
in
    #"Changed Type"

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


@mahoneypat
Muchas gracias, su solución es sensacional.
Resolvió mi problema.

Gracias

HotChilli
Super User
Super User

Probablemente sería más fácil cambiar el tipo de datos a decimal en lugar de tratar con el tipo de porcentaje, pero de todos modos esto es lo que hice.

Duplica la tabla.

COD 'Agrupar por' y sumar la columna Porcentaje. Llame a la nueva columna Agregar

Obtendrás esto

Screenshot 2020-12-10 203456.png

A continuación, agregue una columna personalizada para restar del 100%.

Utilice este código, en la fórmula:

Percentage.From("100%") -[Add]

Cambie el tipo a Porcentaje.

A continuación, puede combinar esta tabla con la tabla original (unirse en COD).

Expanda la columna Tabla para devolver solo la columna Personalizado de la 2a tabla.

Se verá así:

Screenshot 2020-12-10 204056.png

y desde allí se puede agregar una columna con lógica ''Si la columna Porcentaje es null use Tabla 2 personalizada else use Percent column"

Buena suerte.

@HotChilli Muchas gracias, su solución es sensacional.
Resolvió mi problema.

Gracias

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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