The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hi guys,
I have a measure (amount) whose define my amount of raw material and a table with this columns
-raw material
-price
-amount
-date of purchase
What I need is another measure to define my price. For example, if my measure amount is 5000 for material 1 and my table is like:
raw material | price | amount | date of purchase |
material1 | 2,9 | 2000 | 18/dec/2023 |
material1 | 1,8 | 3500 | 20/dec/2023 |
material2 | 3,4 | 1000 | 12/dec/2023 |
material2 | 0,8 | 1500 | 10/oct/2023 |
I need to order my table by date of purchase descendent and calculate something like this:
3500*1,8 + (1500)*2,9 = 10650
Important, my amount is 5000, so I cant to surpass this amount, that's why I used 1500 instead of 2000 to multiply by 2,9.
How can I do this measure?
Solved! Go to Solution.
Hello @IgorAM,
Can you please try this:
Calculate Price =
VAR TotalAmountNeeded = 5000
VAR CumulativeTable =
ADDCOLUMNS(
FILTER(
'YourTable',
'YourTable'[raw material] = "material1"
),
"CumulativeAmount",
CALCULATE(
SUM('YourTable'[amount]),
FILTER(
ALL('YourTable'),
'YourTable'[date of purchase] <= EARLIER('YourTable'[date of purchase]) &&
'YourTable'[raw material] = EARLIER('YourTable'[raw material])
)
)
)
VAR Result =
SUMX(
CumulativeTable,
IF(
[CumulativeAmount] <= TotalAmountNeeded,
[amount] * [price],
MAX(0, TotalAmountNeeded - [CumulativeAmount] + [amount]) * [price]
)
)
RETURN
Result
Hello @IgorAM,
Can you please try this:
Calculate Price =
VAR TotalAmountNeeded = 5000
VAR CumulativeTable =
ADDCOLUMNS(
FILTER(
'YourTable',
'YourTable'[raw material] = "material1"
),
"CumulativeAmount",
CALCULATE(
SUM('YourTable'[amount]),
FILTER(
ALL('YourTable'),
'YourTable'[date of purchase] <= EARLIER('YourTable'[date of purchase]) &&
'YourTable'[raw material] = EARLIER('YourTable'[raw material])
)
)
)
VAR Result =
SUMX(
CumulativeTable,
IF(
[CumulativeAmount] <= TotalAmountNeeded,
[amount] * [price],
MAX(0, TotalAmountNeeded - [CumulativeAmount] + [amount]) * [price]
)
)
RETURN
Result
Thank you very much, @Sahir_Maharaj!
It is just what I needed, I just made some little changes, but the main logic is what you did!
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.
User | Count |
---|---|
21 | |
19 | |
18 | |
18 | |
14 |
User | Count |
---|---|
38 | |
35 | |
23 | |
20 | |
17 |