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

Be 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

Reply
Anonymous
Not applicable

Necesita ayuda para calcular el promedio ponderado

Hola

Tengo una tabla de referencia que contiene el estado sabio promedio de la duración de las estancias (ALOS) en el hospital para diferentes procedimientos. También tengo una tabla de hechos que contiene episodios de admisión y LOS para cada paciente. Me gustaría calcular el promedio ponderado LOS usando el estado ALOS.

ilky_1-1596897357960.png

En la imagen se muestra un ejemplo de datos. La fórmula para El ESTADO Ponderado ALOS es:

(H8/H10)*$H$3+(H9/H10)*$H$4 para enero

(I8/I10)*$H$3+(I9/I10)*$H$4 para febrero y así sucesivamente ..

No puedo crear la medida DAX que calcula el ESTADO ponderado ALOS.

¿Puede ayudar por favor ?

1 ACCEPTED SOLUTION
Arklur
Resolver II
Resolver II

Puse manualmente sus datos de muestra en un modelo, aquí está el código PQ para eso:

// StateAverage
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8s5LTVXSUTJVitWJVvLILACyDQ2UYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Procedure = _t, StateAverageLos = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Procedure", type text}, {"StateAverageLos", Int64.Type}})
in
    #"Changed Type"

// Data
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8krMU9JR8s5LTQVSZkqxOtFKbqlJCCFjsJBvYhFCyAIs5FiAJGQJVVWJEDICC3mVIhlvCBEC2+iRWQA3HWIhRMQMyT6IiDmSdRARUyTbICJGxki2QYRMlGJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Procedure = _t, Procedures = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type text}, {"Procedure", type text}, {"Procedures", Int64.Type}})
in
    #"Changed Type"

Después de eso, cree la relación necesaria entre las 2 tablas:

image.png

A continuación, agregue esta medida al modelo:

WeightedStateAverageLos = 
VAR vWeightedSum = 
    SUMX ( 
        Data,
        Data[Procedures] * RELATED ( StateAverage[StateAverageLos] )
    )
VAR vCountProcedures = 
    SUM ( Data[Procedures] )
VAR vRetval = 
    DIVIDE ( vWeightedSum, vCountProcedures )
RETURN
    vRetval

Esto debería darle el resultado esperado:

image.png

Obviamente, para ver los meses en el orden correcto, se necesita más transformación, pero ese no es el alcance de su pregunta.

View solution in original post

4 REPLIES 4
amitchandak
Super User
Super User

@ilky, esta no es la forma en que los datos deben estar allí.

¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?

recomienda

https://www.sqlbi.com/blog/marco/2017/10/02/why-data-modeling-is-important-in-powerbi/

https://radacad.com/power-bi-basics-of-modeling-star-schema-and-how-to-build-it

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
Arklur
Resolver II
Resolver II

Puse manualmente sus datos de muestra en un modelo, aquí está el código PQ para eso:

// StateAverage
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8s5LTVXSUTJVitWJVvLILACyDQ2UYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Procedure = _t, StateAverageLos = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Procedure", type text}, {"StateAverageLos", Int64.Type}})
in
    #"Changed Type"

// Data
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8krMU9JR8s5LTQVSZkqxOtFKbqlJCCFjsJBvYhFCyAIs5FiAJGQJVVWJEDICC3mVIhlvCBEC2+iRWQA3HWIhRMQMyT6IiDmSdRARUyTbICJGxki2QYRMlGJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Procedure = _t, Procedures = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type text}, {"Procedure", type text}, {"Procedures", Int64.Type}})
in
    #"Changed Type"

Después de eso, cree la relación necesaria entre las 2 tablas:

image.png

A continuación, agregue esta medida al modelo:

WeightedStateAverageLos = 
VAR vWeightedSum = 
    SUMX ( 
        Data,
        Data[Procedures] * RELATED ( StateAverage[StateAverageLos] )
    )
VAR vCountProcedures = 
    SUM ( Data[Procedures] )
VAR vRetval = 
    DIVIDE ( vWeightedSum, vCountProcedures )
RETURN
    vRetval

Esto debería darle el resultado esperado:

image.png

Obviamente, para ver los meses en el orden correcto, se necesita más transformación, pero ese no es el alcance de su pregunta.

Anonymous
Not applicable

Hola @Arklur

Muchas gracias, esto es exactamente lo que necesitaba. Sigo siendo nuevo en Power BI, su explicación era clara y fácil de entender.

Gracias de nuevo.

saludos

Ilky

Greg_Deckler
Super User
Super User

@ilky - No hay suficiente información para continuar, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Power BI Cookbook Third Edition (Color)

DAX is easy, CALCULATE makes DAX hard...

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!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors