Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Problema DATEADD con variables

Hola a todos,

Me encuentro con el siguiente problema. Estoy convencido de que está relacionado con que no entiendo (todavía) cómo se calculan las variables, por lo que cualquier explenación sería muy apreciada ...

Esta es mi medida DAX (no tiene sentido por sí misma, simplemente la adelgazé hasta la esencia de mi problema). YearMonth es un campo de una tabla de calendario desarrollada correctamente

Prueba =
DÓNDE Ventas = CALCULAR(SUMA(«Detalle de la factura»[Total sin IVA]))
DÓNDE Sales_LM = CALCULAR(Ventas , FECHAADD('Calendario'[Fecha],-1,MES))
devolución Sales_LM
JuanSombrero_0-1640091755531.png


Como puede ver en la captura de pantalla, "Prueba" devuelve el mismo resultado que mi medida de ventas original, en lugar del mes anterior. ¿Alguien se preocupa por explicarme por qué? Supongo que tiene que ver con el hecho de que me refiero a 'Ventas de VAR' en mi 'VAR Sales_LM'? Porque cuando lo reemplazo por la función de ventas inicial, todo funciona bien
Prueba =
DÓNDE Ventas = SUMA(«Detalle de la factura»[Total sin IVA])
DÓNDE Sales_LM = CALCULAR(SUMA(«Detalle de la factura»[Total sin IVA]) , FECHAADD('Calendario'[Fecha],-1,MES))
devolución Sales_LM
¡Muchos thx!
Saludos
Ene

4 Replies

  • Hay @JuanSombrero ,

    Cree esto como una medida separada.

    Medida de ventas = SUMA(«Detalle de la factura»[Total sin IVA])

    y luego pruebe

    VAR Sales_LM = CALCULAR([Medida de ventas], DATEADD('Calendario'[Fecha],-1,MES))

    12.JPG

    Saludos

    Duro Nathani

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola Harsh,

      de hecho, eso resolvería el problema. Pero, ¿podría explicarme también por qué mi solución no funciona? Tengo la sensación de que el "por qué" es muy importante aquí para que no me encuentre con problemas comparables en el futuro.

      Thx
      Ene

  • La variable se calcula una vez por contexto.

    Por ejemplo:

    Distance from Average=
    VAR _Avg = AVERAGE(Sales[Sales])
    RETURN
    AVERAGEX(
    VALUES(Users[Id]),
    SUM(Sales[Sales])-_Avg
    )

    Devolvería la diferencia promedio del promedio de TODOS los usuarios seleccionados (en lugar del promedio de cada usuario individual), a menos que el contexto de la fila sea el usuario específico.