March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch 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?
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
23 | |
16 | |
15 | |
7 | |
6 |
User | Count |
---|---|
33 | |
29 | |
16 | |
13 | |
12 |