I'm not sure if there is an easier way, but this can be accomplished using a macro.
Set an On Select macro for the Year field. Use something like this:
set Sello = ActiveDocument.Fields("Year").GetSelectedValues
ActiveDocument.Variables("vGoodYear").SetContent 0, true
for i = 0 to Sello.Count - 1
if Sello.Item(i).text = "2009" then
ActiveDocument.Variables("vGoodYear").SetContent 1, true
Then you can use the variable in the Show expression. This macro is a simplified version of what you would need. You could set the conditional based on the current year, which looks like what you are trying to do.
I'm going to elaborate a little more on my problem.
I have 3 graphs, one graph I want displayed if one of the selected years is 2009, one for 2008 and the other for 2007.
@npeyroux, the Max() causes your formula to break when multiple years are selected.
Also max is out of the question because 2008 falls in between 2009 and 2007 if all three years were selected.
A macro shouldn't be needed, If I can filter it and have it see the 2008 out of a list within an if then else statement, the same should be possible within an expression. I'd also like to stray away from macros for performance and managability.
GetFieldSelections() seems to be the best bet, but for some reason Max() is not working together with it. Any other suggestions?