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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
RobertZijlstra
Frequent Visitor

Cómo reportar ingresos por mes basados en 2 tablas: registro de contratos y precios históricos

Estoy buscando ayuda en esto.

Tengo 2 mesas. Uno con datos sobre contratos. Esto incluye un identificador de contrato único, fecha de finalización inicial y (potencial) y un código de precios. Se ve así.

Contrato #

Fecha de inicio

Fecha de finalización

Código de precios

Q

01-04-2019

10-11-2020

A

W

01-08-2018

31-12-2999

A

E

06-04-2017

31-12-2999

B

R

15-11-2019

31-05-2020

B

T

15-06-2020

31-12-2999

C

Y

01-08-2020

30-09-2020

C

También tengo una tabla que incluye los precios históricos por código de precios. Por lo tanto, por código de precios se puede ver el precio para un período determinado. Vea a continuación, el código de precios A cuesta 100 euros del 01-01-2018 al 30-06-2019 y cuesta 110 euros desde el 01-07-2019 hasta el 31-12-2020.

Código de precios

Fecha de inicio

Fecha de finalización

Precio

A

01-01-2018

30-06-2019

100,00 euros

A

01-07-2019

31-12-2020

110,00 euros

B

01-01-2017

31-12-2019

200,00 euros

B

01-01-2020

31-12-2021

205,00 euros

C

01-06-2020

01-12-2021

300,00 euros

¿Puede alguien ayudarme a conectar de forma eficaz estas 2 tablas en Power BI para informar de los ingresos por contrato al mes.

Algo como esto:

Contrato #

año

Mes

Ingresos

Q

2019

4

100,00 euros

Q

2019

5

100,00 euros

Q

2019

6

100,00 euros

Q

2019

7

110,00 euros

Q

2019

8

110,00 euros

Q

2019

9

110,00 euros

Q

2019

10

110,00 euros

Q

2019

11

110,00 euros

Q

2019

12

110,00 euros

Q

2020

1

110,00 euros

Q

2020

2

110,00 euros

Q

2020

3

110,00 euros

Q

2020

4

110,00 euros

Q

2020

5

110,00 euros

Q

2020

6

110,00 euros

Q

2020

7

110,00 euros

Q

2020

8

110,00 euros

Q

2020

9

110,00 euros

Gracias de antemano por su ayuda !

2 ACCEPTED SOLUTIONS
MFelix
Super User
Super User

Hola @RobertZijlstra ,

Cree una tabla de calendario y una tabla de códigos de precios para realizar la relación entre la tabla con otra y las 2 medidas siguientes:

TotalContract = 
VAR Contract_Selected =
    SELECTEDVALUE ( Contracts[Contract#] )
VAR dateStart =
    MIN ( 'Calendar'[Date] )
VAR dateEnd =
    MAX ( 'Calendar'[Date] )
Var Total_Pricing = 
    CALCULATE (
        SUM ( Pricing[Price] ),
        Contracts[Contract#] = Contract_Selected,
        FILTER (
            Contracts,
            Contracts[Start Date] <= dateStart
                && Contracts[End Date] >= dateEnd
        ),
        FILTER (
            Pricing,
            Pricing[Start Date] <= dateStart
                && Pricing[End Date] >= dateEnd
       ))

return
Total_Pricing







TotalContract_Value = 
var CAlendar_Total = SUMMARIZE('Calendar','Calendar'[Year],'Calendar'[Month],"TotalValue", [TotalContract])
var Result = SUMX(CAlendar_Total, [TotalValue])
Return
Result

Ahora sólo tiene que utilizar la medida Total Contract_Value en sus visualizaciones:

MFelix_0-1604770072103.png

Compruebe la conexión del archivo PBIX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

No @RobertZijlstra,

esto tiene que ver con el contexto hacer lo siguiente, crear una nueva medida para utilizar en su cálculo:

Total_Contract_Values = SUMX(VALUES(Contracts[Contract#]), [TotalContract_Value])

Utilice esta medida en las visualizaciones.

Resultado a continuación y en adjuntar archivo.

MFelix_0-1613655374718.png

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola Robert,

La medida proporcionada no tiene en cuenta los contratos a nivel total en su matriz. Mientras que a nivel de detalle los contratos ya están filtrados. De ahí la diferencia en los números calculados.

En su lugar, podría intentar:

TotalContract_Value = 
VAR ContractCalendarCombinations =
    ADDCOLUMNS(
        CROSSJOIN(
            VALUES( 'Calendar'[Year-Month]),
            VALUES( Contracts[Contract#] )
        ), 
        "ContractValue", [TotalContract] 
    )
VAR Result = SUMX(ContractCalendarCombinations, [ContractValue] )
RETURN
Result

Saludos

Rick de Groot

https://gorilla.bi

Syndicate_Admin
Administrator
Administrator

Hola Miguel, genial.... gracias por su ayuda !!!

MFelix
Super User
Super User

Hola @RobertZijlstra ,

Cree una tabla de calendario y una tabla de códigos de precios para realizar la relación entre la tabla con otra y las 2 medidas siguientes:

TotalContract = 
VAR Contract_Selected =
    SELECTEDVALUE ( Contracts[Contract#] )
VAR dateStart =
    MIN ( 'Calendar'[Date] )
VAR dateEnd =
    MAX ( 'Calendar'[Date] )
Var Total_Pricing = 
    CALCULATE (
        SUM ( Pricing[Price] ),
        Contracts[Contract#] = Contract_Selected,
        FILTER (
            Contracts,
            Contracts[Start Date] <= dateStart
                && Contracts[End Date] >= dateEnd
        ),
        FILTER (
            Pricing,
            Pricing[Start Date] <= dateStart
                && Pricing[End Date] >= dateEnd
       ))

return
Total_Pricing







TotalContract_Value = 
var CAlendar_Total = SUMMARIZE('Calendar','Calendar'[Year],'Calendar'[Month],"TotalValue", [TotalContract])
var Result = SUMX(CAlendar_Total, [TotalValue])
Return
Result

Ahora sólo tiene que utilizar la medida Total Contract_Value en sus visualizaciones:

MFelix_0-1604770072103.png

Compruebe la conexión del archivo PBIX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



No @MFelix ,

Si aún así sigues teniendo problemas, problema con... el importe total del Valor del Contrato es incorrecto.
Si echa un vistazo al valor por contrato se ve bien. En su ejemplo:

Q á 4.860 euros
W á 2.060 euros
E á 1.225 euros
R á 1.800 euros
T á 2.580 euros
Y 600 euros

Si agrega estos números, el valor total debe ser de 13,125 euros, pero en la matriz de Power BI se muestra un total de 9,240 euros.

¿Me puedes ayudar?
Gracias de antemano.
Saludos, Robert

No @RobertZijlstra,

esto tiene que ver con el contexto hacer lo siguiente, crear una nueva medida para utilizar en su cálculo:

Total_Contract_Values = SUMX(VALUES(Contracts[Contract#]), [TotalContract_Value])

Utilice esta medida en las visualizaciones.

Resultado a continuación y en adjuntar archivo.

MFelix_0-1613655374718.png

Gracias de nuevo Miguel, pero todavía estoy luchando con un problema.

Con estas fórmulas DAX no hay ingresos en los contratos que comienzan o terminan durante el mes. En mi contrato de ejemplo Q termina en 10-11-2020, así que me gustaría calcular 10/30 del precio mensual. Y el contrato E comienza el 06-04-2017, así que me gustaría calcular 24/30 del precio mensual.

Traté de agregar algo en la fórmula DAX que tomaría en cuenta estas excepciones (inicio o finalización en una fecha aleatoria durante el mes).

Siento preguntarte de nuevo, pero sería genial si puedes ayudarme de nuevo.

Saludos
Robert

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors