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

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
Anonymous
Not applicable

Calculate value between two dates

Hi, 

 

I have the following two tables:

 

Table A

product cost  startdate         enddate

A            100   01.01.2019     31.03.2019

A             150  01.04.2019     ......

 

Table B
product  date               number of products

A             01.02.2019    1

A              01.05.2019    2

 

I would like to calculate the value of cost from table A in table B 
So it should look like this:

product  date               number of products  cost          Cost of goods

A             01.02.2019    1                                  100           1*100 = 100

A              01.05.2019    2                                  150           2*150 = 300

 

 

 

2 ACCEPTED SOLUTIONS

Hi @Anonymous 

 

Please try the below.

Column = 
CALCULATE( 
    MAX('Table A'[Cost]), 
    FILTER(
        RELATEDTABLE('Table A'),
        'Table A'[startDate] <= 'Table B'[date] )
)

Regards,
Mariusz

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Please try this:

 

Column =
CALCULATE(
MAX('Query1'[Cost]),
FILTER(
RELATEDTABLE('Query1'),
'Query1'[startDate]<= Query2[date] )
)*Query2[number of Products]
 
Com.PNG

View solution in original post

6 REPLIES 6
Mariusz
Community Champion
Community Champion

Hi @Anonymous 

 

You can do it in Query Editor like below 
Price table

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTI0MACSBob6QGRkYGgJ5BgDOcYQTqwOVJUpTJUJTJVSbCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Product Code" = _t, Cost = _t, startDate = _t, endDate = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Product Code", type text}, {"Cost", Int64.Type}, {"startDate", type date}, {"endDate", type date}})
in
    #"Changed Type"

 

Quantity table

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIw1Dcw0jcyMLQEcgyVYnUQwqYwYSMUYTMk1bEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Product = _t, date = _t, #"number of Products" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Product", type text}, {"date", type date}, {"number of Products", Int64.Type}}),
    #"Added Custom" =Table.AddColumn(#"Changed Type", "Cost", each let d = [date] in Table.SelectRows(ProductPrice, each [startDate] <= d and (if [endDate] <> null then [endDate] >= d else true))[Cost]),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Cost"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Cost", type number}})
in
    #"Changed Type1"

 

Regards,
Mariusz

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Anonymous
Not applicable

@Mariusz  thx for your reply

 

Looks pretty complicate, is there a way to do it with dax/calculated columns?

Please try this:

 

Column =
CALCULATE(
MAX('Query1'[Cost]),
FILTER(
RELATEDTABLE('Query1'),
'Query1'[startDate]<= Query2[date] )
)*Query2[number of Products]
 
Com.PNG

Hi @Anonymous 

 

Please try the below.

Column = 
CALCULATE( 
    MAX('Table A'[Cost]), 
    FILTER(
        RELATEDTABLE('Table A'),
        'Table A'[startDate] <= 'Table B'[date] )
)

Regards,
Mariusz

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

hthota
Resolver III
Resolver III

Hi,

 

Create a Measure in First table as given below.

Measue = sum(Table1[Cost])

Later create the Calculated column in Second table as given below.

Cost of Goods= Table1[Number of Probucts]*Measure

 

Please make sure the correct relationships between the two tables.

 

Thanks,

Hemanth Thota.

Anonymous
Not applicable

@hthota 

 

This will not work, missing out the whole timedimension.

On every row will be 450 (sum cost)

 

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Fabric Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.