Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
3 years ago
Solved

Visual usando USERELATIONSHIP

Hola a todos

Estoy tratando de crear un gráfico de columnas simple de la siguiente manera

con 2 tablas: Fecha del calendario y Tabla de contrato.

Tengo 2 relaciones de fecha entre ambas tablas, usando la columna Fecha en la tabla Fecha del calendario con una relación activa con la Fecha activa del contrato y otra inactiva con la Fecha de finalización del contrato, de la tabla Contrato.

Para este objeto visual, necesito usar Fecha de finalización del contrato en la fórmula DAX.

Y me gustaría usar la columna Mes de Fecha del calendario, para facilitar la interacción con otros elementos visuales.

Pero no es como se esperaba.

Sin embargo, cuando uso Mes desde la fecha de finalización del contrato, la imagen es correcta.

Este es el DAX que usé. No estoy seguro de cuál está mal, y espero obtener ayuda.

Valor del contrato que se espera que finalice =
Dónde _CurrentProdDate =
CALCULAR(
MAXX(
Producción,
Producción[Fecha]
),
TODO( 'Fecha del calendario'[Fecha] ),
Producción[Estado]
= "En proceso"
)

Dónde _ContractToBeEnded =
SUMX (
VALORES ( Contrato[Cliente] ),
CALCULAR (
..MAX ( Contrato[Valor anual del contrato] ),
'Fecha del calendario'[Fecha]
>= _CurrentProdDate,
RELACIÓN DE USO (
Contrato[Fecha de finalización del contrato],
'Fecha del calendario'[Fecha]
)
)
)

devolución
_ContractToBeEnded
Agradecemos cualquier ayuda por favor.
Saludos
VVI
  • Syndicate_Admin's avatar
    Syndicate_Admin
    3 years ago

    Hola

    Lo resolví yo mismo.

    Gracias.

    En la línea 18, estaba usando la fecha de la tabla del calendario como comparación.

    Cuando lo cambié a Fecha de finalización del contrato, da como resultado el número correcto.

    El DAX completo:

    Value of Contract Expected to be Ended = 
    var _CurrentProdDate =
        CALCULATE(
            MAXX(
                Production,
                Production[Date]
                ),
            ALL( 'Calendar Date'[Date] ),
            Production[Status] 
                = "Being Processed"
        )
    
    var _ContractToBeEnded =
        SUMX (
            VALUES ( Contract[Customer] ),
            CALCULATE (
                MAX ( Contract[Annual Contract Value] ),
                Contract[Contract End Date]
                    >= _CurrentProdDate,
                USERELATIONSHIP (
                    Contract[Contract End Date],
                    'Calendar Date'[Date]
                )
            )
        )
    
    return
        _ContractToBeEnded

    @lbendlin

7 Replies

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      @lbendlin

      Gracias por el recordatorio.

      Aquí están los datos de la tabla de origen.

      ClienteValor anual del contratoFecha de actividadFecha de inicio del contratoFecha de finalización del contrato
      Cust A 40,00031-dic-191-mar-1828-feb-23
      Cust A 50,00031-dic-201-mar-1828-feb-23
      Cust A 55,00031-dic-211-mar-1828-feb-23
      Cust A 60,00031-dic-221-mar-1828-feb-23
      Cust A 75,00028-feb-231-mar-1828-feb-23
      Cust B 75,00031-dic-191-jun-1931-may-22
      Cust B 75,00031-dic-201-jun-1931-may-22
      Cust B 50,00031-dic-211-jun-1931-may-22
      Cust B 50,00031-may-221-jun-1931-may-22
      Cust C 10,00031-dic-211-may-2130-abr-23
      Cust C 15,00031-dic-221-may-2130-abr-23
      Cust C 15,00030-abr-231-may-2130-abr-23
      Cust D 25,00031-dic-221-sep-2231-ago-24
      Cust D 50,00031-dic-231-sep-2231-ago-24
      Cust D 50,00031-ago-241-sep-2231-ago-24

      Y el resultado esperado en la vista de tabla

      MesValor del contrato que se espera que finalice
      2023-0275000
      2023-0415000
      2024-08
      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        ¿Cuál es la importancia de la fecha de inicio del contrato? ¿Es parte del problema?