There is the "units in range" function whose output you can assign to a unit group variable. This takes a point, radius, and conditional unit filter (to only get non-structure units, for example) and then gives you the group full of the units inside. Then you use the "unit group - pick" action and do things to all the units.
It doesn't fully take collision into account and only gets units whose center coordinates are within the circle (so a big unit just outside whose model overlaps the circle wouldn't be counterd). If you want to be 'better' but not 'accurate' you can add 'whatever approximately half of the average collision size of all units on your map is' to the search radius. Or use +32 as a best guess instead.