I have the following matrix product:

$Y=W^{(2)}\sigma(W^{(1)}X+b^{(1)})+b^{(2)}$

where $W^{(1)}\in R^{m\ \textrm{x}\ n}$, $W^{(2)}\in R^{(m-1)\ \textrm{x}\ n}$ $X\in R^{n\ \textrm{x}\ p}$ and $b^{(1)} \in R^m$ and $b^{(2)} \in R^{m-1}$. Moreover, $\sigma: R^{m\ \textrm{x}\ p} \Rightarrow R^{m\ \textrm{x}\ p}$ is any nonlinear function.

I am given the following result:

$\frac{\partial Y}{\partial X\_j}=\sum\_{i}w\_{,i}^{(2)}\sigma'(I\_i^{(1)})w\_{ij}$

where $X\_j$ is a column vector in $X$, $w\_{,i}^{(2)}$ is the $i$-th column vector in $W^{(2)}$, $I\_i^{(1)}=W^{(1)}X+b^{(1)}$. In am basically describing the derivative of the output of a neural networks (feedforward) with one hidden layer with respect to a specific column of the matrix $X$.
Can somebody please explain me how to get to this result? It is quite confusing to me due to the fact tht the derivative of a matrix product is taken with respect to one vector of one of the two initial matrices.