Bè con Access diventa banale perché ci sono le funzioni Group By e Distinct fatte apposta per questo.
La prova l'ho fatta con MySQL perché non ho access ma il linguaggio SQL è uguale per entrambi quindi dovrebbe funzionare anche su access.
Praticamente ho definito una tabella "Morgana" con quattro colonne Gruppo, Impresa, Cat1 e Cat2, ho inserito i tuoi valori di esempio e poi ho eseguito questa query:
codice:
SELECT Gruppo, count( DISTINCT Cat1 ) , count( DISTINCT Cat2 )
FROM `Morgana`
GROUP BY Gruppo
Ottenendo esattamente ciò che ti serve come da screenshot allegato.
Fammi sapere se risolvi in questo modo, se non cerchiamo un'altra soluzione.