You are probably right about the file size, Express is a free verison, therefore there will be some limits, if you have a full Version, those will be removed.
Where do you get your csv files from? I might be easier to get odbc access to that database and load data in smaller chunks below a million rows, as you need them, instead of setting up a new database. And even if you have done that, the million row Limit in Excel will still exist.
Also, have you tried your VBA Code on something Close to a million rows? As far as I remember, this could be really slow/not work at all, maybe because VBA does not take advantage of several processor cores.
Have you ever worked with Excel tables and created your on columns with Excel functions? The if clauses you mentioned above could be created there as well, and whenever the data is refreshed, it would recalculate your columns automatically. If yes, you could do the same with Powerpivot, as I ried to explain above. Maybe you should just give it a try.