Sadly it's going to be next to impossible to debug this at least without access to the datasource / extract you're having problems with. I dare so it would also require access to the source as well in order to eliminate it as being the problem versus something happening within the transform which occurs within Tableau.
Hi Tom. Thanks for the answer. The bug is nothing to do with Tableau and to do with further down the chain from where the data is coming from. We cant retrospectively change the data so the next best thing is a filter or something can be applied to our worksheets. Sorry should have made this clear.
You could create a calculated field like "FixedRevenue" with a formula along the lines of IF [OrderCategory] = "OrderCategory2" and [SaleDate] >= '2016-02-01' and [SaleDate] <= '2016-02-29' then [Revenue]/3 else Revenue end.
I wouldn't personally do this as I feel like it will be way to easy to accidentally use the existing Revenue field or in the future you connect to the same datasource and forget to apply this logic or in 3 years time someone else comes through without understanding why that logic exists and deletes it.
If it were me - I'd edit the source file if it's something like an Excel / CSV and manually override it. If it's a database connection, I'd prefer to create a process to scrub the data as part of a 'refresh', modify the data directly in the tables or create a view on top of the existing table which effectively excludes the duplicates or divides the revenue like I did above.