Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
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?
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 9 | |
| 6 | |
| 3 | |
| 2 | |
| 1 |
| User | Count |
|---|---|
| 21 | |
| 14 | |
| 11 | |
| 6 | |
| 5 |