Well you'd have to have a check for A:A for each row individually if all conditions are met essentially.
Its probably easier to check for X first and then if none found, check for !, and if none found, return green.

Basically you can't count actual conditional formatting, you have to count whether the result is within a certain boundary.