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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
Syndicate_Admin
Administrator
Administrator

Columna caclulada de DAX para buscar la siguiente fecha en la columna según criterios o condiciones

Hola a todos

He estado buscando en línea para encontrar una solución. Parece bastante fácil en SQL usando particiones, pero más allá de mí en DAX. Tengo la tabla a continuación y me gustaría agregar una columna calculada para la fecha de pago.

Para cada Cliente, siempre que haya una fila donde Tipo de transacción = Perdido, devuelva la Fecha en que aparezca la siguiente fila para ese cliente con Tipo de transacción = Pago. Si no hay Pago, déjelo en blanco. Si se trata de cualquier otro tipo de tipo de transacción, déjelo en blanco.

Así que para la fila 3 donde hay un Missed, 20 y 31/03/2021....Me gustaría agregar una nueva columna para devolver el 09/04/2021 como este cuando se realizó el próximo Pago futuro (fila 6).

Una vez que obtenga la fecha perdida y la fecha de pago en una fila, podré hacer un DATEDIFF para calcular el retraso en el pago.

Muchas gracias de antemano por cualquier orientación.

ClienteTipo de transacciónValor de transacciónFechaFecha de pago
0001Domiciliación Bancaria2031/01/2021
0001Domiciliación Bancaria2028/01/2021
0001Perdido2031/03/2021
0001Honorario505/04/2021
0001Misc107/04/2021
0001Pago2009/04/2021
0001Domiciliación Bancaria2031/04/2021
0001Perdido2031/05/2021
0001Misc702/06/2021
0001Honorario806/06/2021
0001Pago2012/06/2021
0001Ajuste914/06/2021
0002Perdido10031/03/2021
0002Pago10015/04/2021
0002Domiciliación Bancaria10031/04/2021
0002Perdido10031/05/2021
0002Ajuste-2903/06/2021
0002Pago10027/06/2021
0003Perdido3915/03/2021
0003Perdido3915/04/2021
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Aunque debe considerar hacer su cálculo como una medida, aquí hay una expresión de columna que parece funcionar.

Fecha de pago =
VAR thisdate = Pagos[Fecha]
DEVOLUCIÓN
SI(
Pagos[Tipo de transacción] = "Perdido",
CALCULAR(
MIN( Pagos[Fecha] ),
Pagos[Tipo de transacción] = "Pago",
Pagos[Fecha] >= estafecha,
ALLEXCEPT( Pagos, Pagos[Cliente] )
)
)

mahoneypat_0-1647994379834.png

Palmadita

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Date Deferred = 
IF(
    PYMT[Transaction Type] = "Missed",
    VAR date_deferred =
        MINX(
            FILTER(
                PYMT,
                PYMT[Customer] = EARLIER( PYMT[Customer] )
                    && PYMT[Date] > EARLIER( PYMT[Date] )
                    && PYMT[Transaction Value] = EARLIER( PYMT[Transaction Value] )
                    && PYMT[Transaction Type] = "Payment"
            ),
            PYMT[Date]
        )
    RETURN
        IF( date_deferred > 0, date_deferred - PYMT[Date] )
)

CNENFRNL_0-1648011636129.png

La fórmula de la hoja de cálculo de Excel es poderosa para resolver una pregunta tan simple,

CNENFRNL_1-1648011733800.png

@CNENFRNL- Gracias por su ayuda. Realmente aprecio todo el esfuerzo y la profundidad a la que has ido.

Syndicate_Admin
Administrator
Administrator

Aunque debe considerar hacer su cálculo como una medida, aquí hay una expresión de columna que parece funcionar.

Fecha de pago =
VAR thisdate = Pagos[Fecha]
DEVOLUCIÓN
SI(
Pagos[Tipo de transacción] = "Perdido",
CALCULAR(
MIN( Pagos[Fecha] ),
Pagos[Tipo de transacción] = "Pago",
Pagos[Fecha] >= estafecha,
ALLEXCEPT( Pagos, Pagos[Cliente] )
)
)

mahoneypat_0-1647994379834.png

Palmadita

@mahoneypat- Muchas gracias por su ayuda. Su solución fue la más adecuada para mí, ya que permite que cualquier primer pago de cualquier tamaño se asigne contra el Missed ... que es lo que necesitaba.

Syndicate_Admin
Administrator
Administrator

Hola @DoubtfulGuest , está bien, así que esto es lo que se me ha ocurrido. Puede haber otras formas, pero vea a continuación.

Aquí está el PBIX https://drive.google.com/file/d/1Pjg-lsaaeb_NpqUK7953vbuuqOAZQLis/view?usp=sharing

Comience creando una tabla calculada para filtrar a perdidos/pagos - Tabla de prueba

Crear columna de clasificación para crear un índice

Cálculo de offset con dar a la fecha para llevar a cabo su dateiff.

Datediff por diferencia.

Espero que esto ayude. Por favor, acepte mi solución si satisface sus necesidades.

Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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

Top Solution Authors