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

DESEMBOLSO Y REEMBOLSOS DE PRÉSTAMOS

Necesito ayuda con el conjunto de datos adjunto. Esta es una versión más pequeña del conjunto de datos, la original tiene más de 13 millones de filas
Tengo una tabla de fechas con la fecha vinculada a la fecha de la transacción en la fecha establecida en una relación de uno a varios. Permítanme llamar al conjunto de datos adjunto 'FData'.
El interés del préstamo es del 10% y la permanencia del préstamo es de 30 días.
Mi solicitud es verificar y crear una columna adicional donde, por cada LOANID, pueda saber si el préstamo se pagó en su totalidad o está pendiente y luego contarlo.

Tuve que crear las siguientes tablas para obtener mi solución y mi modelo parece un poco complicado,
¿Hay alguna manera de hacer todo esto sin crear tablas reales? Basta con añadir una columna y hacer el recuento del LOANID si ha incumplido o no. @Ch

El DAX que se muestra a continuación fue lo que utilicé para crear la tabla y mi solución

DesembolsoTabla =
FILTRO(
fData,
fData[TRANSACTIONTYPE] = "Desembolso" &&
RELATED('Fecha'[Fecha]) >= MIN(fData[FechaDeTransacción]) &&
RELATED('Fecha'[Fecha]) <= MAX(fData[FechaDeTransacción])
)

DisbursementSum =
RESUMIR(
Tabla de desembolsos,
Tabla de desembolsos[LOANID],
DisbursementTable[TransactionDate],
"DisbursementAmount", ROUND(SUM('DisbursementTable'[TRANSACTIONAMOUNT]), 2)

ColeccionesTabla =
FILTRO(
fData,
(fData[TRANSACTIONTYPE] = "Principal_REPAYMENT" || fData[TRANSACTIONTYPE] = "INTEREST_FEE_REPAYMENT"&&
fData[TransactionDate] >= MIN(fData[TransactionDate]) &&
fData[TransactionDate] <= MAX(fData[TransactionDate])))

CollectionsSum =
RESUMIR(
CollectionsTable,
CollectionsTable[LOANID],
"CollectionsAmount", ROUND(SUM(CollectionsTable[TRANSACTIONAMOUNT]), 2))

JoinedTable = ADDCOLUMNS(DisbursementSum, "CollectionsAmount",
CALCULAR(
SUM(CollectionsSum[CollectionsAmount]),
FILTRO(
CollectionsSum,
CollectionsSum[LOANID] = DisbursementSum[LOANID]
)
)
)

Tabla unida = ADDCOLUMNS(JoinedTable, "Defaulted",
SI(
ISBLANK(
[CollectionsAmount]) || [ImporteColecciones] < [ImporteReembolso],
"Sí", "No"
)

LOANID||FECHA DE DESEMBOLSO||TIPO DE TRANSACCIÓN|| IMPORTE DE LA TRANSACCIÓN || FECHA DE LA TRANSACCIÓN

AAA10/7/2023DESEMBOLSO $ 10.0010/7/2023
AAB10/24/2023DESEMBOLSO $ 50.0010/24/2023
CAA11/12/2023DESEMBOLSO $ 100.0011/12/2023
AA11/25/2023DESEMBOLSO $ 150.0011/25/2023
E.A.U9/2/2023DESEMBOLSO $ 100.009/2/2023
AAF9/15/2023DESEMBOLSO $ 200.009/15/2023
AAA10/7/2023PRINCIPAL_REPAYMENT $ 7.0010/27/2023
AAB10/24/2023PRINCIPAL_REPAYMENT $ 45.0011/2/2023
CAA11/12/2023PRINCIPAL_REPAYMENT $ 100.0011/30/2023
AA11/25/2023PRINCIPAL_REPAYMENT $ 150.0012/15/2023
E.A.U9/2/2023PRINCIPAL_REPAYMENT $ 100.009/22/2023
AAF9/15/2023PRINCIPAL_REPAYMENT $ 200.009/30/2023
AAA10/7/2023INTEREST_FEE_REPAYMENT $ 2.0010/29/2023
AAB10/24/2023INTEREST_FEE_REPAYMENT $ 1.0011/12/2023
CAA11/12/2023INTEREST_FEE_REPAYMENT $ 10.0012/17/2023
AA11/25/2023INTEREST_FEE_REPAYMENT $ 15.0012/20/2023
E.A.U9/2/2023INTEREST_FEE_REPAYMENT $ 10.009/30/2023
AAF9/15/2023INTEREST_FEE_REPAYMENT $ 20.0010/3/2023
AAA10/7/2023PENALTY_FEE_COLLECTION $ 1.0011/10/2023
AAB10/24/2023PENALTY_FEE_COLLECTION $ 1.0011/30/2023

@123abc , @tamerj1, @amitchandak , @Jihwan_Kim ,@Greg_Decker

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@Alfredowoo Sí, no había una solución, pero quería confirmar si eso es lo que espera como salida, una simple confirmación podría ayudar a evitar este ida y vuelta.

De todos modos, estas son las medidas que puede probar en su modelo. Tenga en cuenta que estas medidas se pueden contraer en la medida final, pero prefiero tenerlas separadas para que se puedan reutilizar y también ayudar a depurar los problemas:

Sum Amount = SUM (fData[TransactionAmount] )

Disbursement Amount = CALCULATE ( [Sum Amount], fData[TransactionType] = "Disbursement" )

Collections Amount = CALCULATE ( [Sum Amount], fData[TransactionType] IN { "Principal_Repayment", "Interest_Fee_Repayment" } )


Count = 
VAR __baseTable =
    ADDCOLUMNS (
        VALUES ( fData[LoanId] ),
        "@Disbursement Amount", [Disbursement Amount],
        "@Collections Amount", [Collections Amount] 
    )
VAR __AddDefaultedFlag = 
ADDCOLUMNS (
    __baseTable,
    "@Defaulted",
    ISBLANK ( [@Collections Amount] ) || [@Collections Amount] < [@Disbursement Amount]
)
RETURN
COUNTROWS ( FILTER ( __AddDefaultedFlag, [@Defaulted] ) )

Un consejo aquí es que será mejor si tiene una dimensión separada para la tabla de préstamos, básicamente todos los atributos de cada préstamo en una tabla separada, y tendrá una fila única para cada registro de préstamo. Esta tabla tendrá una relación con la tabla fdata en loanid y la medida anterior usará loanid de esta nueva tabla, y también en la visualización elegirá columnas relacionadas con préstamos de esta tabla.

Es un modelo mejor y seguirá las mejores prácticas, y eso proporcionará un mejor rendimiento.

Muchas gracias. Agradezco sus respuestas y su solución

Syndicate_Admin
Administrator
Administrator

@Alfredowoo un pequeño consejo, etiquete a la persona a la que está respondiendo. ¡Gracias!

2º, ¿el resultado que te hizo brillar es la respuesta esperada? Por supuesto, has respondido a esa pregunta.

@parry2k su solución era la respuesta que esperaba, pero no había ningún dax que pudiera usar para probar.
Gracias por el descuido con la respuesta.

Syndicate_Admin
Administrator
Administrator

Hola

Se adjunta archivo PBI.

Espero que esto ayude.

Ashish_Mathur_0-1702870111812.png

Syndicate_Admin
Administrator
Administrator

@Alfredowoo En base a tus datos, ¿es esto lo que esperabas que fuera el resultado?

parry2k_0-1702859720945.png

Sí, esa es la solución que quiero tener

Esta solución funciona para conjuntos de datos pequeños y el objeto visual se queda sin recursos.

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.