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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Obtener la fecha más antigua por crédito para cada año

Tengo 2 tablas en dax :


Tabla Crédito con columna creditbureaureference
Tabla DueAmount con columna con duevaluedate

las relaciones entre ellos
Tabla Crédito (pkey) a DueAmount(creditfk) es de 1 a muchos y el filtro está en ambas direcciones

Estoy usando la columna creditbureaureference de la tabla Credit and duevaluedate de DueAmount en un objeto visual de tabla:

CreditBureauReference DebitValueDate
1 04/02/2024
1 05/02/2024
1 06/02/2024
2 07/02/2024
2 25/12/2023


Quiero obtener la fecha más antigua de vencimiento para cada referencia de buró de crédito como se muestra a continuación:

creditbureaureference duevaluedate Indicador
1 04/02/2024 1 --- en comparación con las 3 filas de CreditBureauReference = 1 Esta es la fecha más antigua
1 05/02/2024 0
1 06/02/2024 0
1 04/02/2023 1
2 07/02/2024 0
2 25/12/2023 1 --- en comparación con las 2 filas de CreditBureauReference = 2 Esta es la fecha más antigua

Utilicé esta columna calculada:

Flag =
VAR MinDate =
    CALCULATE (
        MIN ( 'DueAmount'[duevaluedate] ),
        ALLEXCEPT ( 'DueAmount', 'DueAmount'[creditfk] )
    )
RETURN
    IF ( 'DueAmount'[duevaluedate] = MinDate, 1, 0 )

Ahora, cuando uso esta columna calculada como segmentación:

Year Slicer = YEAR('DueAmount'[duevaluedate])

Obtengo toda la columna Bandera como 0, mientras que el resultado esperado debería ser calcular la Bandera por año:

Si selecciono 2024, mostrará:

CreditBureauReference DebitValueDate
1 04/02/2024
2 07/02/2024

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Terminé usando esta columna calculada:

Flag = 
VAR CurrentYear = YEAR('DueAmount'[duevaluedate])
VAR MinDatePerYearAndCredit =
    CALCULATE(
        MIN('DueAmount'[duevaluedate]),
        ALLEXCEPT('DueAmount', 'Credit'[creditbureaureference]),
        YEAR('DueAmount'[duevaluedate]) = CurrentYear
    )
RETURN
    IF('DueAmount'[duevaluedate] = MinDatePerYearAndCredit, 1, 0)

AmiraBedh_0-1715103304179.png

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Terminé usando esta columna calculada:

Flag = 
VAR CurrentYear = YEAR('DueAmount'[duevaluedate])
VAR MinDatePerYearAndCredit =
    CALCULATE(
        MIN('DueAmount'[duevaluedate]),
        ALLEXCEPT('DueAmount', 'Credit'[creditbureaureference]),
        YEAR('DueAmount'[duevaluedate]) = CurrentYear
    )
RETURN
    IF('DueAmount'[duevaluedate] = MinDatePerYearAndCredit, 1, 0)

AmiraBedh_0-1715103304179.png

Syndicate_Admin
Administrator
Administrator

Hola, @AmiraBedh

Gracias por la respuesta de @amitchandak , permítanme proporcionar otra idea:

A partir de su información, creo la tabla:

vyohuamsft_0-1715062757533.png

En primer lugar, cree una columna de cálculo denominada Año :

Year = YEAR('DueAmount'[duevaluedate])

A continuación, cree una nueva medida y pruebe el siguiente DAX:

Flag Measure = 
VAR SelectedYear = MAX('DueAmount'[Year]) 
VAR MinDatePerYear =
    CALCULATE(
        MIN('DueAmount'[duevaluedate]),
        ALLEXCEPT('DueAmount', 'DueAmount'[creditbureaureference]),
        YEAR('DueAmount'[duevaluedate]) = SelectedYear
    )
    VAR _Date = MIN('DueAmount'[duevaluedate])
RETURN
    IF(
        YEAR(_Date) = SelectedYear && _Date = MinDatePerYear,
        1
    )

Y aquí está mi vista previa:

vyohuamsft_1-1715062833128.png

Cómo obtener respuestas rápidas a tu pregunta

Saludos

Yongkang Hua

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por su ayuda, el problema es que la referencia de la oficina de crédito solo existe en la tabla Crédito. ¿Cómo debo proceder de esta manera?

Syndicate_Admin
Administrator
Administrator

@AmiraBedh , Pruebe una medida como

Primera fecha = var _max = minx(filter(ALLSELECTED('DueAmount'), 'DueAmount'[creditbureaureference ] = Max('DueAmount'[creditbureaureference ])), 'DueAmount'[duevaluedate])
devolución
CALCULATE(min('DueAmount'[duevaluedate]), filter(('DueAmount') , 'DueAmount'[duevaluedate] =_max))

Gracias por su ayuda, el problema es que la referencia de la oficina de crédito solo existe en la tabla Crédito. ¿Cómo debo proceder de esta manera?

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.