Report For Contacts Who Have Purchased X items

Report For Contacts Who Have Purchased X items

Right now I have contacts that are associated with invoices and within the invoices are products purchased.

Is there a way to run a report on 'All customers who have purchased product X' and  'All customers who have purchased product X and Y but not Z'