Actually this is very easy.

/cast [@focus, exists] spell1
/cast [@target, exists] spell2

Macros fall through to the first castable spell. Just tested and works fine.