Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Visual usando USERELATIONSHIP

Hola a todos

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

VVI_0-1675407067417.png

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.

VVI_1-1675411174742.png

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
1 ACCEPTED SOLUTION

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

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra que cubran su problema o pregunta por completo.
https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-...
Muestre el resultado esperado en función de los datos de muestra que proporcionó.

https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

@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

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

@lbendlin

La fecha de inicio del contrato no es el problema ahora, y no hay necesidad de amortizar el contrato durante el año.

¿Su objeto visual usa el período de la tabla del calendario?

@lbendlin

Además, me gustaría mostrar el valor del contrato para el año del año de producción actual y en el futuro. Por lo tanto, no se requiere el año anterior.

Entonces, es por eso que estoy agregando un filtro:

'Fecha del calendario'[Fecha]
>= _CurrentProdDate
o
Contrato[Fecha de finalización del contrato]
>= _CurrentProdDate
Pero esto no funcionó.


Muestre el resultado esperado en función de los datos de muestra que proporcionó.

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

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.