Forum Discussion
Show data based on the latest/maximum year
- 3 years ago
Hi AnthonyJoseph ,
This code should match better with your requirements:
Revenue = VAR _LastYear = CALCULATE ( MAX ( 'Table'[Year] ), ALLSELECTED () ) VAR _ProjectsLastYear = CALCULATETABLE ( VALUES ( 'Table'[Project] ), 'Table'[Year] = _LastYear, ALLSELECTED () ) VAR _ClientsLastYear = CALCULATETABLE ( VALUES ( 'Table'[Client] ), 'Table'[Year] = _LastYear, ALLSELECTED () ) VAR _ProjectsInContext = VALUES ( 'Table'[Project] ) VAR _ClientsInContext = VALUES ( 'Table'[Client] ) VAR _ClientProjectCombinationsInLastYear = CALCULATETABLE ( SUMMARIZE ( 'Table', 'Table'[Client], 'Table'[Project] ), 'Table'[Year] = _LastYear, ALLEXCEPT ( 'Table', 'Table'[Client], 'Table'[Project] ) ) VAR _RevenuePerClientProject = CALCULATETABLE ( ADDCOLUMNS ( _ClientProjectCombinationsInLastYear, "@Revenue", CALCULATE ( SUM ( 'Table'[revenue] ) ) ), INTERSECT ( _ClientsLastYear, _ClientsInContext ), INTERSECT ( _ProjectsLastYear, _ProjectsInContext ) ) RETURN SUMX ( _RevenuePerClientProject, [@Revenue] )revenue projects last year examples
The 40 for Client 2, Project 2, Year 2020 in your examples seems rather like a mistake in your example?Example not matching
BR
Martin
It took me a moment to get the general rules from your examples, but here you are:
Revenue of Last Year's Projects =
VAR _LastYearInOverallData = // this is what you call latest year
CALCULATE (
MAX ('Table'[Year] ),
ALL ()
)
VAR _SelectAllProjectsInLastYearInOverallData =
CALCULATETABLE (
SUMMARIZECOLUMNS(
'Table'[Client],
'Table'[Project]
),
'Table'[Year] = _LastYearInOverallData
)
VAR _LastYearInFilterContext =
CALCULATE (
MAX ( 'Table'[Year] ),
ALLEXCEPT ( 'Table', 'Table'[Year] )
)
VAR _TotalSinceLatestYearInFilterContextForAllProjectsInLastYearInOverallData =
CALCULATE (
SUM ( 'Table'[revenue] ),
_SelectAllProjectsInLastYearInOverallData,
'Table'[Year] >= _LastYearInFilterContext
)
RETURN
_TotalSinceLatestYearInFilterContextForAllProjectsInLastYearInOverallData
Last year's projects and values since last selected year
- AnthonyJoseph3 years ago
Resolver III
Thanks Martin_D . The solution always compares against the latest in the dataset whereas it should compare against the latest/maximum year among the selected year from the slicer.
In the screenshot below, the years 2021 and 2020 are selected but the graph shows data for 2022 i.e. didnt consider the latest value of the slicer but considers for that data set. Paster below are the screenshots for reference.
Please can you help me to show data only based on the latest selected value from the slicer,,,- Martin_D3 years ago
Solution Sage
Hi AnthonyJoseph ,
To be honest, I don't really get the requirements. My screenshot shows exactly the selection that you described in your examples and exactly the resulting values that you required for these selections. Would you please doublecheck your examples or add more examples that make the difference clear between my proposed solution and your requirement. Ideal would be a general description in addition to examples and consitent with the examples. Actually I wrote alternative measures that matched more with my understanding of your textual description but they did not match with your examples. I'm a bit confused.
BR
Martin- AnthonyJoseph3 years ago
Resolver III
Hi Martin_D
Sorry for the inconvenience... My bad.. I gave the incorrect examples....
I am trying the better examples below with the screenshots...
1) When 2020, 2021, 2022 are selected then the clients and projects in the latest year is selected (2022 in this case) and their corresponding values for the selected years (2020 and 2021) are also shown.2)Scenario 2: When the years 2021 and 2020 are selected, the clients and projects in the latest year is selected (2021 in this case) and the values for the selected years (2021 and 2020) are also displayed.
3) Scenario 3: When 2022 and 2020 are selected.
4) When single year (2021 in this case) is selected only the revenue for the selected year should be displayed.
Hope I was able to give a better understanding of the problem this time...(Again, sorry for the incorrect examples)...Realy appreciate your help in this. Please let me know if any further clarification is required...Thanks,
AnthonyJoseph