Forum Discussion
Dax Measure
- 1 year ago
Hi LoganFFS ,
Thank you for reaching out to us on the Microsoft Fabric Community Forum.
Please follow below steps.
Step 1: Add an Index Column, Since there’s no timestamp, we need an index column that gives us the row order. Do this in
Power Query:Sort by Date, Name, Symbol. Add an Index column starting from 1 (call it RowIndex).
Step 2:DAX Measure to Get First Buy After Each Sell
Create a measure with below DAX
AverageFirstBuyAfterSell =
VAR SellTable =
FILTER (
ALL ( Table ),
Table[Action] = "Sell"
)
VAR FirstBuyAfterSellTable =
ADDCOLUMNS (
SellTable,
"FirstBuyPrice",
CALCULATE (
MINX (
TOPN (
1,
FILTER (
ALL ( Table ),
Table[RowIndex] > EARLIER ( Table[RowIndex] )
&& Table[Action] = "Buy"
),
Table[RowIndex], ASC
),
Table[Price]
)
)
)
RETURN
AVERAGEX (
FirstBuyAfterSellTable,
[FirstBuyPrice]
)Step 3 : Drag all the fields in table visual.
Please refer sample data and output snaps and PBIX file.
If my response has resolved your query, please mark it as the "Accepted Solution" to assist others. Additionally, a "Kudos" would be appreciated if you found my response helpful.
Thank you
Hi LoganFFS,
Please find the attached pbix file with a solution for you problem description.
Dax Measure.pbix
Please let me know if you have further questions.
If this reply helped solve your problem, please consider clicking "Accept as Solution" so others can benefit too. And if you found it useful, a quick "Kudos" is always appreciated, thanks!
Best Regards,
Maruthi
Hi there, I tried it today. The index column I added in just fine, but the measure gave me trouble. When I entered the measure, I entered it into a number visual hoping to display the average instead of at the bottom of the dataset. I attached a photo of what i hope to achieve. Whether it needs to be done in one measure or two calculated columns im not sure. I only want to have a value in the new column where there is a buy directly after a sell so that I can average that column easier. This should hopefully clear up what im trying to achieve. Thanks in advance!