Yes, this is possible. If I were solving this problem, I'd write a calculated field that went something like:
IF ISMEMBEROF('PrivilegedGroup1') THEN 1 // they can see all of it
ELSEIF ISMEMBEROF('PrivilegedGroup2') THEN 1 // they can see all of it
ELSEIF ISMEMBEROF('NonPrivilegedGroup') AND ( [RevenueDate] > '2015-01-01' AND [RevenueDate] < '2015-01-01') AND ([Category] = 'SomeCategory') THEN 1 // they can see some of it
ELSE 0 // no data for you!
Then, set that as up as a filter where it equals "1"...probably best as a datasource filter so that the logic would apply to any sheets using that connection in your workbook (without you having to remember to add it each time).
There might be an easier way to do this, but hopefully that's one solution. Hope it helps!