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
gauravnarchal
Post Prodigy
Post Prodigy

Medida de envejecimiento de los deudores - Power Bi

Estaría muy agradecido si alguien pudiera ayudar con esto.

Tengo la fecha de la factura, el importe de la factura, la fecha de recepción de pago y el importe pagado por transacción.

Durante una selección de una fecha determinada, necesito la factura pendiente por ProfileName. La fecha de vencimiento de la factura se calculará a partir de la tabla ClientDetails según el número de "CreditDays". ¿Puedes ayudar a cómo se puede hacer esto?

Edad 1 1-30

Edad2 31-60

Edad 3 61-90

Edad4 90+

Por favor, hágamelo saber si necesita cualquier otra información.

Esperamos sus comentarios / orientación.

He adjuntado el archivo PBIX para su referencia.

Descargar PBIX

21 REPLIES 21
Greg_Deckler
Super User
Super User

@gauravnarchal - No estoy completamente seguro. ¿Está diciendo que desea calcular la fecha de vencimiento de la factura y luego calcular cuántos días vencidos se basan en HOY?


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler - Sí en lugar de en el día de hoy, debería ser a partir de la fecha seleccionada, ya que es posible que necesitemos retirar el informe a partir de la fecha anterior

He adjuntado el PBIX que estoy usando en mi post anterior.

¡Gracias!

@Greg_Deckler - ¿Crees que puedo obtener los resultados deseados? Cualquier ayuda en esto sería apreciada.

Muchas gracias de antemano.

He creado debajo de columnas en su tabla ARInvoices para obtener el estado basado en días de crédito,

Días de Crédito ( Credit Days)
LOOKUPVALUE(ClientDetail[CreditDays],ClientDetail[ProfileNumber],ARInvoices[ProfileNumber])
Fecha de vencimiento ?
ARInvoices[InvoiceDate]+ARInvoices[Días de crédito]
Estado de la situación :
IF(ARInvoices[Fecha de vencimiento] > HOY(), "No debido", "Atraso")
a partir de ahí se puede averiguar el número de facturas vencidas por nombre de perfil

Gracias @amaleranda

Ahora he creado las columnas según lo aconsejado por usted.

No pude encontrar la medida de envejecimiento, ya que quiero que el resultado se encuentre debajo de la tabla de envejecimiento como a continuación

Edad 1 1-30 (Días)

Edad2 31-60 (Días)

Edad 3 61-90 (Días)

Age4 90+ (Días)

La lógica de la fecha de vencimiento del estado de cuenta es la siguiente:-

  • Si ClientDetail(Grupo de instrucciones) es M, es un estado de cuenta mensual, si el ClientDetail(Grupo Statement) es F que su instrucción quincenal
  • Para el estado de cuenta mensual – la fecha de vencimiento será la 1a fecha del mes siguiente más días de crédito (Ejemplo – para el estado de cuenta del 01 al 31 de mayo con 30 días de crédito, la fecha de vencimiento será de 30 Jun, que es 01Jun +30 días)
  • Para el estado de cuenta quincenal: la fecha de vencimiento será diferente para el 1er FN (01 a 15 Fecha de la Factura) y el 2o FN (16 a 30 o 31 Fecha de la Factura)
  • Si la fecha de la factura es anterior al 16 del mes, la fecha de vencimiento será el 16o + días de crédito (Ejemplo – para el estado de cuenta del 01 al 15 de mayo con 30 días de crédito, la fecha de vencimiento de las facturas será el 14 de junio que es el 16 de mayo + 30 días)
  • Si la fecha de la factura es posterior al 16 del mes, la fecha de vencimiento será el 01o del mes siguiente + días de crédito (Ejemplo – para el estado de cuenta de 16-31 de mayo con 30 días de crédito, la fecha de vencimiento de las facturas será el 30 de junio que es el 01 de junio + 30 días

Sólo para simplificar - mi fecha de vencimiento es la fecha de vencimiento del estado de cuenta y no la fecha de vencimiento de la factura.

Gracias

Gaurav

Hola @gauravnarchal,

¿Cuál es su salida deseada? ¿Para etiquetar cada perfil/número de factura con una edad? ¿O para encontrar el número de perfiles/Números de factura por edad? ¿O la cantidad no pagada en cada edad?

He creado una medida que devuelve la edad de cada número de factura, se encuentra una versión actualizada de su archivo a continuación.

Tenga en cuenta que he cambiado un poco en el modelo de datos también, porque su modelo era complejo innecesario.

Salud
Sturla

Si este post ayuda, por favor considere Aceptarlo como la solución. Los elogios también son agradables.

Gracias por su ayuda @sturlaws

Quiero la declaración debida lógica como abajo:-

  • Si ClientDetail(Grupo de instrucciones) es M, es un estado de cuenta mensual, si el ClientDetail(Grupo Statement) es F que su instrucción quincenal
  • Para el estado de cuenta mensual – la fecha de vencimiento será la 1a fecha del mes siguiente más días de crédito (Ejemplo – para el estado de cuenta del 01 al 31 de mayo con 30 días de crédito, la fecha de vencimiento será de 30 Jun, que es 01Jun +30 días)

  • Para el estado de cuenta quincenal: la fecha de vencimiento será diferente para el 1er FN (01 a 15 Fecha de la Factura) y el 2o FN (16 a 30 o 31 Fecha de la Factura)
  • Si la fecha de la factura es anterior al 16 del mes, la fecha de vencimiento será el 16o + días de crédito (Ejemplo – para el estado de cuenta del 01 al 15 de mayo con 30 días de crédito, la fecha de vencimiento de las facturas será el 14 de junio que es el 16 de mayo + 30 días)
  • Si la fecha de la factura es posterior al 16 del mes, la fecha de vencimiento será el 01o del mes siguiente + días de crédito (Ejemplo – para el estado de cuenta de 16-31 de mayo con 30 días de crédito, la fecha de vencimiento de las facturas será el 30 de junio que es el 01 de junio + 30 días

Sólo para simplificar - mi fecha de vencimiento es la fecha de vencimiento del estado de cuenta y no la fecha de vencimiento de la factura.

Hola @gauravnarchal

Hice una versión actualizada de su informe de muestra, de acuerdo con sus requisitos. Lo implemré como una columna calculada en la tabla ARInvoices.

Por lo tanto, dependiendo de su caso de uso, puede arrastrar la nueva columna a un objeto visual para dividir cualquier medida que desee analizar en función de la edad. O arrastre la columna Edad a un objeto visual de tabla para ver la edad de cada factura.

Salud
Sturla

@sturlaws - Hemos logrado el 50% con su ayuda y necesitaría más ayuda.

1) La segmentación debe Calendario (Tabla) en lugar de Fecha Factura.

2) Para (_hasNotPaid) no consideró el ReceiptDate como el envejecimiento de las Facturas está vinculado cuando se realiza el pago.

Si la fecha del Calendario Seleccionado es < entonces fecha de recibo, entonces la factura es "Sin pagar" o Si no hay fecha de recepción, entonces la factura es "Sin pagar"

He vuelto a conectar el archivo PBIX.

Agradezca toda su ayuda de antemano.

Descargar PBIX

Esto es un poco complicado, porque CashReceiptInvoices está relacionado con CashReceipt con una relación de varios a varios.

Creo que es factible, pero los datos de su informe no coinciden realmente. Solo hay 2 facturas en ARInvoices que coinciden en ARInvoiceDetails. Lo que significa que no hay suficientes datos para probar una solución.

Pero en lugar de solucionar esto en Power BI, el modelado debe aprobarse, por ejemplo, [AmountPaid] debe estar en la tabla CashReceipt. O [ReceiptDate] en CashReceiptInvoices.


¿Cuál es tu fuente? Veo que en este informe está importando desde Excel, ¿es así como se configuran realmente sus datos? ¿O tiene la posibilidad de dar forma a los datos de manera diferente?

Hola @sturlaws - Sé que esto es complicado 😊. Nuestro origen de datos es SQL y no puede compartir el mismo archivo, por lo que ha creado un nuevo archivo y cargado el Excel de la misma manera que las tablas SQL.

Desafortunadamente, no podré cambiar el modelado ya que los datos son de SQL.

Ahora he actualizado los datos y adjunto es el PBIX actualizado.

Descargar PBIX

Gracias

Gaurav

@sturlaws Por favor, hágamelo saber si necesita más información para lograr este requisito.

Una vez más muchas gracias por su ayuda de antemano.

Hola @gauravnarchal

He adjuntado una versión actualizada

Gracias por su ayuda @sturlaws

Actualmente los resultados se muestran como una medida, ¿cómo puedo mostrarlos en Matrix? He adjuntado el PBIX revisado

Descargar aquí

Seguro

@sturlaws - Muchas gracias por su ayuda. Creo que a la nueva medida le falta el vínculo

1. A partir del 31 de julio - El total de la medida 1 es correcto, pero el resultado total de la Medida 2 es erróneo. También para cualquier otro "como en la fecha seleccionada", mismo problema.

2. Uso de la Medida 2 - No puedo obtener "total" mientras uso Matrix visual. Necesita total de fila y columna.

SE adjunta PBIX actualizado

Descargar PBIX

tratar de cambiar la medida 2 a esto:

Measure 2 =
VAR _ageCategory =
    CALCULATE ( MAX ( AgingTable[Index] ) )
RETURN
    SUMX (
        VALUES ( ARInvoices[InvoiceID] ),
        VAR _age = [Measure]
        VAR _amount =
            CALCULATE ( SUM ( ARInvoices[InvoiceAmount] ) )
        RETURN
            SWITCH (
                TRUE (),
                _age = "Age 1"
                    && _ageCategory = 1, _amount,
                _age = "Age 2"
                    && _ageCategory = 2, _amount,
                _age = "Age 3"
                    && _ageCategory = 3, _amount,
                _age = "Age 4"
                    && _ageCategory = 4, _amount
            )
    )

@sturlaws

1) El total de filas todavía no refleja

2) El total de la columna es incorrecto

gauravnarchal_1-1598928647504.png

¡Gracias!

@gauravnarchal

lo siento por el tiempo de respuesta lento, muy ocupado en el trabajo en estos días.

Esto parece devolver los totales de fila correctos:

Measure 2 =
VAR _ageCategory =
    CALCULATE ( MAX ( AgingTable[Index] ) )
VAR _tmp =
    SUMX (
        VALUES ( ARInvoices[InvoiceID] ),
        VAR _age = [Measure]
        VAR _amount =
            CALCULATE ( SUM ( ARInvoices[InvoiceAmount] ) )
        RETURN
            SWITCH (
                TRUE (),
                _age = "Age 1"
                    && _ageCategory = 1, _amount,
                _age = "Age 2"
                    && _ageCategory = 2, _amount,
                _age = "Age 3"
                    && _ageCategory = 3, _amount,
                _age = "Age 4"
                    && _ageCategory = 4, _amount
            )
    )
RETURN
    IF (
        ISFILTERED ( AgingTable[AgingGroup] ),
        _tmp,
        SUMX (
            VALUES ( ARInvoices[InvoiceNumber] ),
            VAR _selectedDate =
                CALCULATE ( MAX ( 'Calendar'[Date] ) )
            VAR _dueDate =
                CALCULATE ( MAX ( ARInvoices[DueDate] ) )
            VAR _invoiceDetailIDs =
                CALCULATE ( MAX ( ARInvoiceDetails[InvoiceDetailID] ) )
            VAR _receiptDate =
                CALCULATE (
                    MAX ( CashReceipt[ReceiptDate] ),
                    FILTER ( ALL ( CashReceipt ), CashReceipt[InvoiceDetailID] = _invoiceDetailIDs )
                )
            RETURN
                CALCULATE (
                    SUM ( ARInvoices[InvoiceAmount] ),
                    FILTER (
                        ALL ( 'ARInvoices'[InvoiceDate] ),
                        _selectedDate > _dueDate
                            && _receiptDate > _selectedDate
                    )
                )
        )
    )

@sturlaws - Por favor, hágamelo saber si necesita más información y le agradece por su ayuda de antemano.

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.