Ghady,
You first need to restructure your lists in the right format for a two dimensional Interpolation.
x={1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};
y={1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
f={21,22,23,24,25,24,23,22,21,20,21,22,21,20,19,18};
data = MapThread[{{#1,#2},#3}&,{x,y,f}];
Next use Interpolation to construct the function
ffun = Interpolation[data]
There are many options to Interpolation that you should read --for example using splines or an interpolation order.Documentation
Lastly, you can use derivative to get derivatives. Here I get derivatives at the point 2,2 in various directions:
Derivative[1, 1][ffun][2, 2]
Derivative[1, 0][ffun][2, 2]
Derivative[0, 1][ffun][2, 2]
You can also make a derivative function using the above syntax.
Regards