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
Trying to Create 2 card visuals (one for this year and one for last year) that show the number of stores that are selling above an average N amount per month.
I think the best way to do this is to create a calculated column to sums the sales numbers by Store Name and Year. Can you let me know the best way to approach that?
Or if that is not the right appraoch, what might be? Pretty sure I am overcomplicated a potentially simple goal.
Solved! Go to Solution.
Hi @abarrett,
Here is the calculated column formula to get the row count based on current category group and average:
Column =
COUNTROWS (
FILTER (
SUMMARIZE (
FILTER ( 'Table', [StoreRef] = EARLIER ( 'Table'[StoreRef] ) ),
[StoreRef],
[Date],
[Revenue],
"AVG",
CALCULATE (
AVERAGE ( 'Table'[Revenue] ),
FILTER (
ALL ( 'Table' ),
[StoreRef] = EARLIER ( 'Table'[StoreRef] )
&& YEAR ( [Date] ) = YEAR ( EARLIER ( 'Table'[Date] ) )
)
)
),
[Revenue] > [AVG]
)
)
You can set two 'year' filters on your card to show different results.
Regards,
Xiaoxin Sheng
Please give sample data?
Below are some overly simplied versions of the data where I am ultimately trying to find the number of stores (YTD, and prior year same time period) where the average monthly revenue is $50 for that same time period
in the below example 2021 (through June) would have 2 stores (Store B and C)
2022 would also have 1, Store A
Revenue Table
StoreRef | Revenue | Date |
0 | $500 | 1/1/2022 |
0 | $300 | 4/1/2022 |
1 | $1,000 | 1/2/2021 |
2 | $100 | 1/5/2022 |
2 | $500 | 3/3/2021 |
as well as a reference table where
0 -> Store A
1 -> Store B
2 -> Store C
Hi @abarrett,
Here is the calculated column formula to get the row count based on current category group and average:
Column =
COUNTROWS (
FILTER (
SUMMARIZE (
FILTER ( 'Table', [StoreRef] = EARLIER ( 'Table'[StoreRef] ) ),
[StoreRef],
[Date],
[Revenue],
"AVG",
CALCULATE (
AVERAGE ( 'Table'[Revenue] ),
FILTER (
ALL ( 'Table' ),
[StoreRef] = EARLIER ( 'Table'[StoreRef] )
&& YEAR ( [Date] ) = YEAR ( EARLIER ( 'Table'[Date] ) )
)
)
),
[Revenue] > [AVG]
)
)
You can set two 'year' filters on your card to show different results.
Regards,
Xiaoxin Sheng
Good day Abarett
You should be able to create a measure that will calculate this (instead of doing an expensive calculated column)
Create a new measure.
MeasureName =
VAR AvgSalesStore = 12345 (or any value you hardcode) or VAR AvgSalesStore2 = AVERAGE('TableName'[Sales])
VAR NumberOfStoresAboveAverage =
CALCULATE(
COUNTROWS('TableName'[Sales]), -- This is the main Fact Table
TableName'[Stores] >= AvgSalesStore -- This will check the stores where the average is either AvgSalesStore or AvgSalesStore2
RETURN
NumberOfStoresAboveAverage
So this is fantastic, and I think it gets me about 95% of the direction I am going.
each line item in my version of TableName[Sales] may have more than 1 in it. That is fine, swaping COUNTROWS with SUM should work. Would any other parts of the measure need to be adjusted?
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 |
---|---|
20 | |
18 | |
18 | |
18 | |
14 |
User | Count |
---|---|
40 | |
35 | |
23 | |
20 | |
20 |