(∃xp(x) → ∃xq(x)) → ∃x(p(x) → q(x))
I have to explain the procedure, starting with (∃xp (x) → ∃xq (x)) until reaching → ∃x (p (x) → q (x)). To solve this exercise I have taken advantage of this theory: Recall that given any referential S and conditions p (x), q (x) appropriate (relative to the elements of S), we have defined ∃xp (x) as {x ∈ S | p (x)} = ∅ and ∀xp (x) as {x ∈ S | p (x)} = S. so i take (∃xp(x) → ∃xq(x)) following the theory, I define (∃xp(x) → ∃xq(x)) as {x ∈ S | p(x)} = ∅ → {x ∈ S | q(x)} = ∅
You used semantics in your proof sketch, which is fine. A formal proof however doesn't do this and goes for example along the following lines (in my favorite deduction system for first-order logic):
We assume $\exists xq(x)\lor\neg\exists xp(x)$. (Because $a\rightarrow b\equiv b\lor\neg a$, which can be proved in my favorite deduction system.) This implies $\exists xq(x)\lor\exists x(\neg p(x))$. (Because $\forall x\phi\rightarrow\exists x\phi$, which can also be proved.) So, as any of $q(x)$ and $\neg p(x)$ implies $p(x)\rightarrow q(x)$, you can use the introduction and elimination rule for $\exists$ to establish $\exists x(p(x)\rightarrow q(x))$.
Good luck with logic!