VARX.P devuelve el valor negativo en dax, ¿por qué?

Un usuario Pregunto ✅

Fariba1984

Hola expertos,

Me gustaría calcular la varianza de algunos valores con este código dax:

Gesamtauslastung:= 

var x=  SUMX(CheckoutUtilization;CALCULATE(((CheckoutUtilization[NumberOfParallelCheckouts] / CheckoutUtilization[MaxNumberOfCheckouts])* CheckoutUtilization[MinutesOfParallelCheckoutUsage]) / CheckoutUtilization[DailyTotalMinutesOfCheckoutUsage];CheckoutUtilization[Date_SID];CheckoutUtilization[_NumberOfParallelCheckouts]))
return CALCULATE(VARX.P(CheckoutUtilization;x);ALLSELECTED('date'))

Pero lo que veo como resultado son valores negativos, como entendí, la varianza siempre es +. ¿Por qué obtengo tal resultado?

2020-08-06 14_51_49-Mape1 - Excel.png

1- Me gustaría calcular la varianza de estos valores.
Como puede ver, el valor de la varianza es menos

daxer

En respuesta a daxer

[Auslastung] = 
    SUMX(
        CheckoutUtilization,
	CheckoutUtilization[NumberOfParallelCheckouts]
	/ CheckoutUtilization[MaxNumberOfCheckouts]
    	* CheckoutUtilization[MinutesOfParallelCheckoutUsage]
        / CheckoutUtilization[DailyTotalMinutesOfCheckoutUsage]
    )

Gesamtauslastung :=
    CALCULATE(
        VARX.P(
            CheckoutUtilization,
            [Auslastung]
        ),
        ALLSELECTED( 'date' )
    )

Necesitas algo como lo anterior…

daxer

Estos NO son valores negativos. Estos son 0. Lo que ve es el resultado del redondeo a nivel de máquina. Obtiene 0 porque las variables en DAX no se vuelven a calcular, conservan su valor durante todo el cálculo. Entonces, están grabados en piedra una vez que los defines. Su x nunca cambia, por lo tanto, ve 0.

daxer

En respuesta a daxer

[Auslastung] = 
    SUMX(
        CheckoutUtilization,
	CheckoutUtilization[NumberOfParallelCheckouts]
	/ CheckoutUtilization[MaxNumberOfCheckouts]
    	* CheckoutUtilization[MinutesOfParallelCheckoutUsage]
        / CheckoutUtilization[DailyTotalMinutesOfCheckoutUsage]
    )

Gesamtauslastung :=
    CALCULATE(
        VARX.P(
            CheckoutUtilization,
            [Auslastung]
        ),
        ALLSELECTED( 'date' )
    )

Necesitas algo como lo anterior…

greg_deckler

@ Fariba1984 – VARX.P usa la fórmula:

∑(x – x̃)2/norte

Entonces, si n es negativo, supongo que obtendrás resultados negativos.

Fariba1984

En respuesta a greg_deckler

Es el tamaño de la población y el tamaño de la población no puede ser negativo

greg_deckler

En respuesta a Fariba1984

@ Fariba1984 – Bueno, no sería la primera vez que encuentro rarezas con las funciones DAX. https://community.powerbi.com/t5/Quick-Measures-Gallery/To-bleep-with-MOD/mp/1081806#M509

Puede consultar el foro de problemas aquí:

https://community.powerbi.com/t5/Issues/idb-p/Issues

Y si no está allí, entonces podrías publicarlo.

Si tiene una cuenta Pro, puede intentar abrir un ticket de soporte. Si tienes una cuenta Pro es gratis. Vaya a https://support.powerbi.com. Desplácese hacia abajo y haga clic en «CREAR TICKET DE SOPORTE».

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *