Forum Discussion
Create a comparative Matrix with data by year filtered with two slicers
Hi,
I am having trouble trying to create a matrix with the data filtered by two slicers (to compare the data by year).
In other words, my data have a monthly summary of sales by product/year.
| Family | Description | Code | Description | Year | Month | Amount |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 1 | 2300 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 2 | 5000 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 3 | 5050 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 4 | 5100 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 5 | 5250 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 6 | 5300 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 7 | 5350 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 8 | 5400 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 9 | 6300 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 10 | 6350 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 11 | 6400 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2021 | 12 | 6450 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2022 | 1 | 6500 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2022 | 2 | 6550 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2022 | 3 | 6000 |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2022 | 4 | 7300 |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . |
| A01 | Bicycles 10 inches | A01-001 | Bicycles sport Red | 2023 | 3 | 8900 |
| A01 | Bicycles 10 inches | A01-002 | Bicycles sport Black | 2021 | 1 | 2300 |
| A01 | Bicycles 10 inches | A01-002 | Bicycles sport Black | 2021 | 2 | 5000 |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . |
| A01 | Bicycles 10 inches | A01-002 | Bicycles sport Black | 2023 | 2 | 6000 |
| A01 | Bicycles 10 inches | A01-002 | Bicycles sport Black | 2023 | 3 | 7300 |
| A02 | Bicycles 12 inches | A02-001 | Bicycles sport Red | 2021 | 1 | 3000 |
| A02 | Bicycles 12 inches | A02-001 | Bicycles sport Red | 2021 | 2 | 3450 |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . |
| A02 | Bicycles 12 inches | A02-001 | Bicycles sport Red | 2023 | 2 | 5600 |
| A02 | Bicycles 12 inches | A02-001 | Bicycles sport Red | 2023 | 3 | 5666 |
| A02 | Bicycles 12 inches | A02-002 | Bicycles sport Black | 2021 | 1 | 2300 |
| A02 | Bicycles 12 inches | A02-002 | Bicycles sport Black | 2021 | 2 | 5000 |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . |
| A02 | Bicycles 12 inches | A02-002 | Bicycles sport Black | 2023 | 2 | 5466 |
| A02 | Bicycles 12 inches | A02-002 | Bicycles sport Black | 2023 | 3 | 6000 |
I have a slicer to select a first year to compare and another slicer to select the second year to compare (This second slicer has a disconnected table of years and i used the command USERELATIONSHIP).
It works fine to create a BAR CHART, but now the user needs a matrix to compare both years values by month and calculate a variation
Something like this:
First year selection: 2021
Second year selection: 2022
Result:
| Jan | Feb | Mar | apr | |
| 2021 | 9900 | 18450 | 5050 | …. |
| 2022 | 2072 | 2122 | 6000 | …. |
| VARIATION | 7828 | 16328 | -950 |
Is it Possible??.
I tried using the command inscope, but i can show only 1 year.
Thank you in advance
- Anonymous3 years ago
Hi gomezc73 ,
I suggest you to inactive all relationships betwen two dimyear tables and your data table.
Data model:
Measure:
Measure = VAR _RecentYear = SELECTEDVALUE ( 'Year'[Year 1] ) VAR _PreviousYear = SELECTEDVALUE ( 'Year 2'[Year 2] ) VAR _Amount = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( 'Table', 'Table'[Year] IN { _PreviousYear, _RecentYear } ) ) VAR _Part1 = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( ALLEXCEPT ( 'Table', 'Table'[Month] ), 'Table'[Year] = _RecentYear ) ) VAR _Part2 = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( ALLEXCEPT ( 'Table', 'Table'[Month] ), 'Table'[Year] = _PreviousYear ) ) RETURN IF ( HASONEVALUE ( 'Table'[Year] ), _Amount, _Part2 - _Part1 )Result is as below.
Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
2 Replies
- AnonymousNot applicable
Hi gomezc73 ,
I suggest you to inactive all relationships betwen two dimyear tables and your data table.
Data model:
Measure:
Measure = VAR _RecentYear = SELECTEDVALUE ( 'Year'[Year 1] ) VAR _PreviousYear = SELECTEDVALUE ( 'Year 2'[Year 2] ) VAR _Amount = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( 'Table', 'Table'[Year] IN { _PreviousYear, _RecentYear } ) ) VAR _Part1 = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( ALLEXCEPT ( 'Table', 'Table'[Month] ), 'Table'[Year] = _RecentYear ) ) VAR _Part2 = CALCULATE ( SUM ( 'Table'[Amount] ), FILTER ( ALLEXCEPT ( 'Table', 'Table'[Month] ), 'Table'[Year] = _PreviousYear ) ) RETURN IF ( HASONEVALUE ( 'Table'[Year] ), _Amount, _Part2 - _Part1 )Result is as below.
Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- gomezc73Helper V
It worked fine. thank you very much!!. the only change i did was change hasonevalue by Inscope and worked perfect. I really appreciate your help