Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
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
Solved! Go to Solution.
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.
Please try this:
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.
@Mariusz thx for your reply
Looks pretty complicate, is there a way to do it with dax/calculated columns?
Please try this:
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.
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.
| User | Count |
|---|---|
| 56 | |
| 41 | |
| 38 | |
| 21 | |
| 21 |
| User | Count |
|---|---|
| 141 | |
| 103 | |
| 63 | |
| 36 | |
| 35 |