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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Uso de SUMMARIZE y SUMX con la instrucción IF

Tengo cirugías #, promedio de cirugías de los últimos 12 meses, # de varianza, costo promedio por caso del mes actual, promedio del costo por caso de los últimos 12 meses. Estoy tratando de calcular el impacto $Amount de los volúmenes de cirugía y resumirlo por unidad operativa, luego por línea de servicio y seguí mis procedimientos. Ahora, hay dos escenarios aquí en los que uso la instrucción IF.

1. SI Cirugías # <> 0 y el promedio de cirugías de los últimos 12 meses <> 0, entonces Varianza# * Costo promedio por caso del mes actual
2. SI Cirugías # = 0 y el promedio de cirugías de los últimos 12 meses <> 0, entonces Varianza# * Promedio del costo por caso de los últimos 12 meses.

Cuando defino esto en el DAX, solo funciona el primer criterio. El segundo criterio no parece estar funcionando. Adjuntando el DAX a continuación,

$ Amt Impact due to Volumes = 
var AvgCPC12months = SUMX(
    SUMMARIZE(Surgeries,'Surgeries'[Operating Unit], 'Surgeries'[PrimaryService], 'Surgeries'[PrimaryProcedureDescription]), 'Surgeries'[Variances#] * 'CPC'[Last 12 months Avg CPC]) 

var AvgCPCCurrentMonth = SUMX(
    SUMMARIZE(Surgeries,'Surgeries'[Operating Unit], 'Surgeries'[PrimaryService], 'Surgeries'[PrimaryProcedureDescription]), 'Surgeries'[Variances#] * 'CPC'[Avg Cost per Case]) 

RETURN 
    IF('Surgeries'[Surgeries#] = 0 && 'Surgeries'[Last 12 Months Avg#] <> 0, AvgCPC12months, AvgCPCCurrentMonth)

Cualquier ayuda será muy apreciada.

1 ACCEPTED SOLUTION

Encontré una solución. Creé una medida simple con la instrucción IF.

$ Amt Impact Criteria = IF('Surgeries'[Surgeries#] = 0 && 'Surgeries'[Last 12 Months Avg#] <> 0, 'Surgeries'[Variance#] * 'CPC'[Last 12 months Avg CPC], 'Surgeries'[Variance#] * 'CPC'[Avg Cost per Case])

Y luego modifiqué el DAX existente de la siguiente manera

$ Amt Impact due to Volumes = SUMX(SUMMARIZE(CALCULATETABLE(CALCULATETABLE('Surgeries', ALL(DimDate)), DATESINPERIOD('DimDate'[Date], MAX('DimDate'[Date]), -12, MONTH)), 'Surgeries'[DepartmentCenter], 'Surgeries'[PrimaryService], 'Surgeries'[PrimaryProcedureDescription]),'Surgeries'[$ Amt Impact Criteria])

¡Gracias a todos por su ayuda!

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Probar:

Surgeries# = CALCULATE(DISTINCTCOUNT('Surgeries'[LogID]),'Surgeries'[LogID]<> "")

Si eso no replica el resultado, una alternativa es:

Surgeries# = CALCULATE(DISTINCTCOUNT('Surgeries'[LogID]),FILTER('Surgeries',NOT ISBLANK('Surgeries'[LogID]))

Esto debería ser capaz de resolver su problema de formato (y también acelerará los cálculos en comparación con la instrucción IF)

Las medidas que usted sugirió básicamente excluirán todas las cirugías NULAS. De hecho, los necesito en los datos para calcular el impacto negativo de la cantidad en dólares (Condición 2 como se menciona en la descripción anterior)

Syndicate_Admin
Administrator
Administrator

¿Cuál es el formato de su columna de cirugías? ¿Es texto? ¿Números?

Cirugías# = IF(ISBLANK(DISTINCTCOUNT('Cirugías'[LogID])), 0, DISTINCTCOUNT('Cirugías'[LogID]))
LogID es texto.
Syndicate_Admin
Administrator
Administrator

Considere la posibilidad de agregar una función de cálculo + filtro. Así, por ejemplo,

CALCULATE([your measure], FILTER(Table, Table[Surgeries] <>""))

Probé CALCULATE('Cirugías'[$ Impacto total debido a los volúmenes], FILTER('Cirugías', 'Cirugías'[Cirugías#] <> ""))

Y recibí el siguiente mensaje de error,
Thamizh_hfhs_0-1715283105378.png

Syndicate_Admin
Administrator
Administrator

Considere la posibilidad de poner su

'Surgeries'[Variances#] * 'CPC'[Avg Cost per Case]

como primera variable.

¿Podría mostrarnos cuál es el resultado que le está dando ahora, y cuál debería ser el resultado esperado?

Intenté agregar eso como primera variable. Este es el resultado que obtengo.

Results I getResults I getResultados que obtengo

Y a continuación se muestra el resultado que necesito,

Result I needResult I needResultado que necesito

Syndicate_Admin
Administrator
Administrator

Hola @Thamizh_hfhs

DAX se ve bien, marque 'Cirugías' [Cirugías #] y 'Cirugías' [Promedio de los últimos 12 meses #] ambos son campos de tipo de datos numéricos.
Pruebe a continuación dax

$ Amt Impact due to Volumes =
VAR AvgCPC12months =
    SUMX (
        SUMMARIZE (
            Surgeries,
            'Surgeries'[Operating Unit],
            'Surgeries'[PrimaryService],
            'Surgeries'[PrimaryProcedureDescription]
        ),
        'Surgeries'[Variances#] * 'CPC'[Last 12 months Avg CPC]
    )
VAR AvgCPCCurrentMonth =
    SUMX (
        SUMMARIZE (
            Surgeries,
            'Surgeries'[Operating Unit],
            'Surgeries'[PrimaryService],
            'Surgeries'[PrimaryProcedureDescription]
        ),
        'Surgeries'[Variances#] * 'CPC'[Avg Cost per Case]
    )
RETURN
    SWITCH(
 TRUE(),
        'Surgeries'[Surgeries#] = 0 && 'Surgeries'[Last 12 Months Avg#] <> 0,
        AvgCPC12months,
        AvgCPCCurrentMonth
    )


Hazme saber si eso funciona para ti


Si su requerimiento está resuelto, marque ESTA RESPUESTA como SOLUCIÓN ✔️ y ayude a otros usuarios a encontrar la solución rápidamente. Por favor, pulsa el botón de pulgar hacia arriba 👍 si este comentario te ayuda.

Gracias
Piyush
Linkedin

Encontré una solución. Creé una medida simple con la instrucción IF.

$ Amt Impact Criteria = IF('Surgeries'[Surgeries#] = 0 && 'Surgeries'[Last 12 Months Avg#] <> 0, 'Surgeries'[Variance#] * 'CPC'[Last 12 months Avg CPC], 'Surgeries'[Variance#] * 'CPC'[Avg Cost per Case])

Y luego modifiqué el DAX existente de la siguiente manera

$ Amt Impact due to Volumes = SUMX(SUMMARIZE(CALCULATETABLE(CALCULATETABLE('Surgeries', ALL(DimDate)), DATESINPERIOD('DimDate'[Date], MAX('DimDate'[Date]), -12, MONTH)), 'Surgeries'[DepartmentCenter], 'Surgeries'[PrimaryService], 'Surgeries'[PrimaryProcedureDescription]),'Surgeries'[$ Amt Impact Criteria])

¡Gracias a todos por su ayuda!

Tengo BLANKS( ) o NULL en las cirugías# que afectan al DAX. Intenté reemplazar las cirugías # = 0 con BLANK o " " o "0" en el DAX. Ninguno de ellos funcionó.

Tanto 'Cirugías' [Cirugías#] como 'Cirugías' [Promedio de los últimos 12 meses#] son números decimales y ambos son medidas.

El DAX que sugirió no funcionó. De nuevo el mismo problema. No veo ningún resultado para los procedimientos con la siguiente condición

'Surgeries'[Surgeries#] = 0 && 'Surgeries'[Last 12 Months Avg#] <> 0

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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