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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Valor acumulado con Userelationship

Hola, chicos

Tengo la siguiente tabla (contiene la medida 'Pendiente de cobro'):

Imagen4.png

Y me gustaría obtener el siguiente:

Imagen5.png

El principal problema es que el calendario de tablas 'T_Calendar' y la tabla de datos 'T_FacturacionExpedienteResumida' no están directamente relacionadas, por lo que utilicé la función Userelationship, como se puede ver:

Imagen3.png

La medida es la siguiente:

Pendiente de cobro = 
Var Facturado = CALCULATE(SUM(T_FACTURACIONEXPEDIENTERESUMIDA[TOTALAPAGAR]);T_FACTURACIONEXPEDIENTERESUMIDA[DIASSINCOBRAR]>0;USERELATIONSHIP(T_CALENDARIO[Fecha];T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]))
Var Cobrado = CALCULATE(SUM(T_FACTURACIONEXPEDIENTERESUMIDA[ENTRADA]);T_FACTURACIONEXPEDIENTERESUMIDA[DIASSINCOBRAR]>0;USERELATIONSHIP(T_CALENDARIO[Fecha];T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]))
Var PendienteCobro = Facturado-Cobrado
Return
PendienteCobro

¿Cómo puedo cambiarlo para obtener los valores acumulativos?

Gracias de antemano.

1 ACCEPTED SOLUTION

Hola, chicos

He resuelto el problema.

La medida que debo introducir es:

Pendiente de cobro =
Var Facturado = CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0; USERELATIONSHIP(T_CALENDARIO[Fecha];' T_FACTURACIONEXPEDIENTERESUMIDA'[FECHAFACTURA]); FILTER(ALL(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
Var Cobrado = CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0; USERELATIONSHIP(T_CALENDARIO[Fecha];' T_FACTURACIONEXPEDIENTERESUMIDA'[FECHAFACTURA]); FILTER(ALL(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
Var PendienteCobro = Facturado-Cobrado
devolución
PendienteCobro

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

1. Ponga la relación como inactiva porque necesito tenerla así.

2. Cree una nueva medida llamada "Prueba 4" que dé los siguientes resultados:

Imagen 5.png

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?
Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var PendienteCobro = Facturacion-Cobro
Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
devolución
PendienteCobroAcumulado

El enlace al archivo está https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano

saludos

Hola, chicos

He resuelto el problema.

La medida que debo introducir es:

Pendiente de cobro =
Var Facturado = CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0; USERELATIONSHIP(T_CALENDARIO[Fecha];' T_FACTURACIONEXPEDIENTERESUMIDA'[FECHAFACTURA]); FILTER(ALL(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
Var Cobrado = CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0; USERELATIONSHIP(T_CALENDARIO[Fecha];' T_FACTURACIONEXPEDIENTERESUMIDA'[FECHAFACTURA]); FILTER(ALL(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
Var PendienteCobro = Facturado-Cobrado
devolución
PendienteCobro
Syndicate_Admin
Administrator
Administrator

@PwrBI01

Mira la Fórmula para LA PRUEBA 3 para obtener tu solución

PBIX Adjunto

VijayP_0-1612455879060.png

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

  1. Pon la relación como inactiva porque necesito tenerla así.
  2. Crear una nueva medida llamada 'Prueba 4'

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?

Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)

Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)

Var PendienteCobro = Facturacion-Cobro

Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))

devolución

PendienteCobroAcumulado

El enlace al archivo está https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano

saludos

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

1. Ponga la relación como inactiva porque necesito tenerla así.

2. Cree una nueva medida llamada "Prueba 4" que dé los siguientes resultados:

Imagen 5.png

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?
Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var PendienteCobro = Facturacion-Cobro
Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
devolución
PendienteCobroAcumulado

El enlace al archivo está https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano

saludos

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

1. Ponga la relación como inactiva porque necesito tenerla así.

2. Cree una nueva medida llamada "Prueba 4" que dé los siguientes resultados:

Imagen 5.png

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?
Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var PendienteCobro = Facturacion-Cobro
Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
devolución
PendienteCobroAcumulado

El enlace al archivo está https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano.

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

1. Ponga la relación como inactiva porque necesito tenerla así.

2. Cree una nueva medida llamada "Prueba 4" que dé los siguientes resultados:

Imagen 5.png

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?
Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var PendienteCobro = Facturacion-Cobro
Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
devolución
PendienteCobroAcumulado

El enlace al archivo está https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano.

Syndicate_Admin
Administrator
Administrator

@PwrBI01

Los datos de ejemplo ayudarían a ofrecer una solución más clara. ¡Apreciamos tus Felicitaciones!

Hay @VijayP

Gracias por su respuesta, pero no funciona como esperaba.

Hice algunos cambios:

1. Ponga la relación como inactiva porque necesito tenerla así.

2. Cree una nueva medida llamada "Prueba 4" que dé los siguientes resultados:

Imagen 5.png

El resultado para 2019 está funcionando correctamente, pero no es el caso para 2017 y 2018, porque los resultados deben ser los siguientes:

Imagen5.png

Creo que el problema es que la medida no está aplicando correctamente la fecha máxima para cada año (la parte que puse en negrita):

Prueba 4 ?
Var Facturacion á CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[TOTALAPAGAR]);' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var Cobro - CALCULATE(SUM('T_FACTURACIONEXPEDIENTERESUMIDA'[ENTRADA];' T_FACTURACIONEXPEDIENTERESUMIDA'[DIASSINCOBRAR]>0)
Var PendienteCobro = Facturacion-Cobro
Var PendienteCobroAcumulado = CALCULATE(PendienteCobro; USERELATIONSHIP(T_FACTURACIONEXPEDIENTERESUMIDA[FECHAFACTURA]; T_CALENDARIO[Fecha]); FILTER(ALLSELECTED(T_CALENDARIO[Fecha]); T_CALENDARIO[Fecha]<=MAX(T_CALENDARIO[Fecha])))
devolución
PendienteCobroAcumulado

Gracias de antemano.

No @VijayP,

Te envío una muestra de datos (esta no es la original, que es mucho más grande), por lo que necesito mantener la relación no activada entre ambas tablas.

El enlace es https://www.dropbox.com/s/kip4r60nztzkzmc/Prueba%20Power%20BI.pbix?dl=0

Gracias de antemano.

Syndicate_Admin
Administrator
Administrator

@PwrBI01

Esta es la fórmula para crear una relación virtual
Ingresos basados en la fecha de entrega: CALCULATE([Total Revenue],USERELATIONSHIP(Dates[Date],Sales[Delivery Date]))
Entrega acumulada ?
CALCULATE([revenue based on delivery date],FILTER(ALL(Dates),Dates[Date]<-MAX(Dates[Date]))
¡Espero que esto ayude!

No @VijayP,

Gracias por su respuesta, lo intenté pero no funciona.

saludos.

Helpful resources

Announcements
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!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors