Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola
Tengo tabla de deudas como esta
Doctype | DocumentNo | Keycode | DocumentDate | PaymentDate | Cantidad | DateKey |
Factura | 2583 | 300090381 | 2005-12-22 | 2006-02-20 | 614.06 | 20051222 |
Factura | 2582 | 300090381 | 2005-12-22 | 2006-02-20 | 1686.51 | 20051222 |
Factura | 2573 | 300090381 | 2005-12-22 | 2006-02-20 | 807.7 | 20051222 |
Factura | 2610 | 300090381 | 2005-12-29 | 2006-02-27 | 1059.52 | 20051229 |
Factura | 2654 | 300090381 | 2006-01-05 | 2006-03-06 | 89.47 | 20060105 |
Factura | 2653 | 300090381 | 2006-01-05 | 2006-03-06 | 78.6 | 20060105 |
Factura | 2644 | 300090381 | 2006-01-05 | 2006-03-06 | 286.03 | 20060105 |
Factura | 2643 | 300090381 | 2006-01-05 | 2006-03-06 | 777.6 | 20060105 |
Pago | 2076 | 300090381 | 2006-01-09 | 2006-01-09 | -1140.9 | 20060109 |
Pago | 2072 | 300090381 | 2006-01-09 | 2006-01-09 | -640.96 | 20060109 |
Pago | 2071 | 300090381 | 2006-01-09 | 2006-01-09 | -344.96 | 20060109 |
Factura | 2752 | 300090381 | 2006-01-13 | 2006-03-14 | 394.94 | 20060113 |
Factura | 2751 | 300090381 | 2006-01-13 | 2006-03-14 | 1146.93 | 20060113 |
Factura | 2750 | 300090381 | 2006-01-13 | 2006-03-14 | 429.37 | 20060113 |
Pago | 2194 | 300090381 | 2006-01-16 | 2006-01-17 | -15.21 | 20060116 |
Pago | 2136 | 300090381 | 2006-01-16 | 2006-01-14 | -505.23 | 20060116 |
Pago | 2121 | 300090381 | 2006-01-16 | 2006-01-14 | -1015.8 | 20060116 |
Pago | 2120 | 300090381 | 2006-01-16 | 2006-01-14 | -402.39 | 20060116 |
Pago | 2074 | 300090381 | 2006-01-16 | 2006-01-09 | -363.28 | 20060116 |
Y creé una medida que me da DebtOnDate
DebtOnDate = IF(
MIN('Calendar'[DateKey])<= CALCULATE(MAX(Debt[DateKey]);ALL(Debt));
CALCULATE(
SUM(Debt[Amount]);
FILTER(
ALL('Calendar'[Date]);'Calendar'[Date]<=MAX('Calendar'[Date]))))
Mi objetivo es escribir una medida que muestre la última factura no pagada en días.
El resultado deseado es
Fecha | DebtOnDate | LatestUnpaidInvoice |
2018-01-30 | 160.285 euros | 35 |
2018-01-31 | 160.065 euros | 36 |
2018-02-01 | 129.968 euros | 45 |
2018-02-02 | 130.293 euros | 32 |
2018-02-03 | 130.293 euros | 33 |
2018-02-04 | 130.293 euros | 34 |
Https://1drv.ms/u/s!Ag3StL_v1twMomwBSLgNWZThfKzm?e=3PMdgf de archivo de datos de ejemplo
Gracias
¿Puede explicar la lógica deseada que está buscando en "fecha de factura más reciente"? ¿La más reciente? ¿La mayoría de los retrasos? ¿Qué columna fecha? ¿Utilizando la columna DocumentNo?
Gracias
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
La lógica es que cualquier deuda consiste en facturas no pagadas. Por ejemplo,
En el día 2020-01-01 el total de la deuda es 2000 y son facturas no pagadas:
Una suma emitida 2019-12-01 200
B Emitido 2019-12-15 suma 1800. Es 2020-01-01 menos 2019-12-01 lo que es 30 días.
En el día 2020-01-16 total de la deuda - 1400 y son facturas no pagadas:
X Emitido 2019-12-20 suma 1000
Y Emitido 2020-01-12 suma 400. Es 2020-01-16 menos 2019-12-20 lo que es 27 días.
Espero que ahora esté más claro
Eso ayuda. Un par de preguntas más. Lo siento. ¿Cómo se indica si una factura no se paga para que la fecha para ella se pueda utilizar en el cálculo más reciente? ¿Coinciden los valores DocumentNo para el pago y la factura? Los datos tienen 19 valores diferentes allí, así que no se puede decir. Además, las fechas que está utilizando en sus publicaciones no coinciden con las de los datos de ejemplo, por lo que es difícil saber qué columna de fecha usar en el cálculo. ¿Fecha de pago o fecha del documento?
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Puedo decir que la factura se paga por tabla de agrupación por
Unpaid Invoice Days =
VAR _tbl =
FILTER (
ADDCOLUMNS (
SUMMARIZE (
Debt;
Debt[DocumentNo];
Debt[KeyCode];
Debt[PaymentDate]
);
"Saldo"; CALCULATE ( SUM ( Debt[Amount] ) );
"InvoiceDate"; CALCULATE ( MAX ( Debt[DocumentDate] ) ) //For knowing which Date Invoice is unpaid
);
[Saldo] > 0 // to filter Unpaid Invoices
)
VAR _min = MINX ( _tbl; [InvoiceDate] )
VAR _max = MAXX ( _tbl; [InvoiceDate] )
RETURN
DATEDIFF ( _min; _max; DAY )