The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi Folks,
I have bamboozled myself - I can normally work out most things but this is evading me.
This code works;
PriceTable =
ADDCOLUMNS(
GENERATESERIES(1, 12, 1),
"Row", [Value],
"Price",
IF(
[Value] = 1,
[Orig Price],
SWITCH(
[Value],
2, [Orig Price] * 0.80,
3, [Orig Price] * 0.64,
4, [Orig Price] * 0.51,
5, [Orig Price] * 0.41,
6, [Orig Price] * 0.33,
7, [Orig Price] * 0.26,
8, [Orig Price] * 0.21,
9, [Orig Price] * 0.17,
10, [Orig Price] * 0.13,
11, [Orig Price] * 0.11,
12, [Orig Price] * 0.09
)
)
)
But the problem is that [Orig Price] is a variable and will contain a value from 250 to 3500. The [Orig Price] is a DAX as follows;
Hi @DominicHill
Thanks for the clarification 🙂
If Price needs to update dynamically based on Orig Price (which is a measure), then Price must also be a measure.
This means that Price cannot be included in a table definition.
I would sugget creating a table containing the row numbers, then define the measure Price based on the max value of Row and Orig Price.
I have attached a small example.
Row table (could be defined in Power Query as well):
Row =
VAR NumRows = 12
RETURN
SELECTCOLUMNS (
GENERATESERIES ( 1, NumRows ),
"Row", [Value]
)
Price measure
Price =
VAR Ratio = 0.8
VAR OrigPrice = [Orig Price]
VAR CurrentRow = MAX ( 'Row'[Row] )
VAR Result = OrigPrice * POWER ( Ratio, CurrentRow - 1 )
RETURN
Result
Table visual
Will that work for what you're doing?
Hi @DominicHill
PriceTable =
VAR OrigPrice = [Origin Price]
VAR Ratio = 0.8
RETURN
ADDCOLUMNS (
GENERATESERIES ( 1, 12, 1 ),
"Row", [Value],
"Price", OrigPrice * POWER ( Ratio, [Value] - 1 )
)
Regards
Hi Owen,
Sorry I haven't responded before - I have been away.
The code from me generates
Which if I put into a matrix shows
The problem is that the first value (the 3,500) should be based on a calculated measure
This 'orig price' will change depending on other selections. Then Row 1 of the table should start at whatever is in the calculated measure 'Orig Price', and the remaining rows then calculate.
Does that make sense?
User | Count |
---|---|
27 | |
12 | |
8 | |
8 | |
5 |
User | Count |
---|---|
31 | |
15 | |
12 | |
7 | |
7 |