Forum Discussion

sunnypb's avatar
sunnypb
Frequent Visitor
3 years ago
Solved

DOUBT CALCULATION DAX % TIME

Hola amigos,

agradecería infinitamente su ayuda. Tengo el siguiente problema y no encuentro el cálculo. Tengo la siguiente tabla y necesito saber el % del tiempo que una casa está entre 17 y 24 (temperatura) y 40 y 60 (humedad), cuando se cumple esa condición se puede decir que la casa está dentro del rango de confort.

 

 

He creado las medidas siguientes

 

Confort = PROMEDIO('lecturas confort'[LECTURA])
Humedad = CALCULATE([Confort], 'lecturas confort'[TIPO_SONDA] IN { "Humedad" })
Temperatura = CALCULAR( [Confort],'lecturas confort'[TIPO_SONDA] IN { "Temperatura" })
 
y para el cáculo del % dentro del rango de confort
 
% RANGO COMPORTAMIENTO =

var porcent=
DIVIDIR(
    COUNTROWS(
        FILTER('lecturas confort',
            INTERRUPTOR(
                VERDADERO(),
                [Temperatura]>=17
&&[Temperatura]<=25
                && [Humedad]>=40
&&[Humedad]<=60, "EN_RANGO",
             "FUERA_DE_RANGO"
            ) = "EN_RANGO"
        )
    ),
COUNTROWS('lecturas confort')
)
var resultado=
if (ISBLANK(porcent),0,porcent)
Resultado de retorno
 
Pero no funciona para mí, no tengo mucha experiencia con Dax. Agradecería su ayuda. Muchas gracias.
  • Hi sunnypb ,

     

    Please try:

    Percentage =
    VAR _a =
        ADDCOLUMNS (
            'Table',
            "Comfort",
                IF (
                    ( 'Table'[TIPO SONDA] = "TEMPERATURA"
                        && [LECTURA] <= 25
                        && [LECTURA] >= 17 )
                        || ( 'Table'[TIPO SONDA] = "HUMEDAD"
                        && [LECTURA] <= 60
                        && [LECTURA] >= 40 ),
                    "Comfortable",
                    "Uncomfortable"
                )
        )
    RETURN
        DIVIDE (
            COUNTROWS ( FILTER ( _a, [Comfort] = "Comfortable" ) ),
            COUNTROWS ( 'Table' )
        )
    

    Output:

    Best Regards,

    Jianbo Li

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

1 Reply

  • Hi sunnypb ,

     

    Please try:

    Percentage =
    VAR _a =
        ADDCOLUMNS (
            'Table',
            "Comfort",
                IF (
                    ( 'Table'[TIPO SONDA] = "TEMPERATURA"
                        && [LECTURA] <= 25
                        && [LECTURA] >= 17 )
                        || ( 'Table'[TIPO SONDA] = "HUMEDAD"
                        && [LECTURA] <= 60
                        && [LECTURA] >= 40 ),
                    "Comfortable",
                    "Uncomfortable"
                )
        )
    RETURN
        DIVIDE (
            COUNTROWS ( FILTER ( _a, [Comfort] = "Comfortable" ) ),
            COUNTROWS ( 'Table' )
        )
    

    Output:

    Best Regards,

    Jianbo Li

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.