Forum Discussion

LAPSA_LAB's avatar
LAPSA_LAB
Frequent Visitor
6 years ago
Solved

Circular pendiente

Hola

Intento calcular en una tabla la actividad o no de una tienda según el volumen de negocios que ha reportado durante un mes.

Así que utilizo la siguiente fórmula para el mes M en una tabla 'Calcul' que contiene el 'CIP' que está conectado a la tabla 'Farmacéutico':

Mois_M DE LA CLAVE DE LA CIUDAD (CALCULATE ( SUM ( sales_order[V_sous_total_HT] ) , sales_order[status] <> "canceled" , Pharmacien[CIP] , MONTH ( sales_order[created_at] ) > MES ( EDATE ( TODAY() , -1 ) ) , YEAR ( sales_order[created_at] )
Esto me da el resultado. Por otro lado, cuando quiero hacer un cálculo similar para el mes M-1, hago el siguiente cálculo:
Mois_M-1 - IF ( CALCULATE ( SUM ( sales_order[V_sous_total_HT] ) , sales_order[status] <> "cancelado" , Farmacia[CIP] , MES ( sales_order[created_at] ) á MES ( EDATE ( TODAY() , -1 )) , YEAR ( sales_order[created_at] ) á YEAR ( EDATE ( TODAY(), -1)) ) > 0 , "Active" , "Inactive" )
Esto me dice el siguiente mensaje: Se ha detectado una dependencia circular: Calculation[Mois_M-1], Calculation[Mois_M], Calculation[Mois_M-1].
No entiendo de dónde viene esta dependencia, porque los cálculos son normalmente independientes (simplemente calculamos si el volumen de negocios de un mes determinado es más de 0 y luego llenamos la casilla con "Activo" o "Inactivo" dependiendo del resultado).
¿Me puedes ayudar?
¡Muchas gracias!

2 Replies

  • Hola @LAPSA_LAB ,

    Veo que en sus dos expresiones DAX hay una diferencia:

    Mois_M DE LA CLAVE DE LA CIUDAD (CALCULATE (SUM (sales_order [V_sous_total_HT]), sales_order [status] <> "canceled", Pharmacist [CIP], MONTH (sales_order [created_at])> MES (EDATE (TODAY (), -1)), YEAR (sales_order [created_at]) - YEAR (TODAY ())> 0, "Active"")

    Month_M-1 - IF (CALCULATE (SUM (sales_order [V_sous_total_HT]), sales_order [status] <> "cancelado", Farmacéutico [CIP], MES (sales_order [created_at]) - MES (EDATE (TODAY), -1) ), AÑO (sales_order [created_at]) - Año (EDATE (TODAY), -1)))> 0, "Active", "Inactive")

    Tratando de entender la parte VERDE resaltada anteriormente. En esto está utilizando el signo EQUAL.

    En la parte RED resaltada anteriormente, está utilizando el signo GREATER THAN, que está comprobando una condición.

    Entonces, ¿es usted el segundo DAX correcto para M-1 ?

    Gracias

    Pragati