March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
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.
Cliente | Tipo de transacción | Valor de transacción | Fecha | Fecha de pago |
0001 | Domiciliación Bancaria | 20 | 31/01/2021 | |
0001 | Domiciliación Bancaria | 20 | 28/01/2021 | |
0001 | Perdido | 20 | 31/03/2021 | |
0001 | Honorario | 5 | 05/04/2021 | |
0001 | Misc | 1 | 07/04/2021 | |
0001 | Pago | 20 | 09/04/2021 | |
0001 | Domiciliación Bancaria | 20 | 31/04/2021 | |
0001 | Perdido | 20 | 31/05/2021 | |
0001 | Misc | 7 | 02/06/2021 | |
0001 | Honorario | 8 | 06/06/2021 | |
0001 | Pago | 20 | 12/06/2021 | |
0001 | Ajuste | 9 | 14/06/2021 | |
0002 | Perdido | 100 | 31/03/2021 | |
0002 | Pago | 100 | 15/04/2021 | |
0002 | Domiciliación Bancaria | 100 | 31/04/2021 | |
0002 | Perdido | 100 | 31/05/2021 | |
0002 | Ajuste | -29 | 03/06/2021 | |
0002 | Pago | 100 | 27/06/2021 | |
0003 | Perdido | 39 | 15/03/2021 | |
0003 | Perdido | 39 | 15/04/2021 |
Solved! Go to Solution.
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] )
)
)
Palmadita
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] )
)
La fórmula de la hoja de cálculo de Excel es poderosa para resolver una pregunta tan simple,
@CNENFRNL- Gracias por su ayuda. Realmente aprecio todo el esfuerzo y la profundidad a la que has ido.
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] )
)
)
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.
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.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!