It´s a very good idea to use it to do something as a "where" but my transformations are different, I need to use Ifs or change formats (maybe Ifs could be done with INLINE tables and ApplyMap, but I think this is not an optimize way)
Like Prashant hinted if possible do the (essential) transformations one step before. You could also try it with loading the qvd optimized and performing the transformations on a resident-load but I doubt that there is much difference between both methods.
But you could try to implement an incremental load-approach. It's not only useful for loading rawdata else it could be very powerful within a second/third data-layer on qvd's - the logic itself is always the same. More to this and the necessary where exists() clause could you find here: Advanced topics for creating a qlik datamodel.