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
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.
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 ?
Solved! Go to Solution.
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:
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:
Obviamente, para ver los meses en el orden correcto, se necesita más transformación, pero ese no es el alcance de su pregunta.
@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
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:
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:
Obviamente, para ver los meses en el orden correcto, se necesita más transformación, pero ese no es el alcance de su pregunta.
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
@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.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.