No, Qlikview has no way to know at load time which fields (of all loaded fields) you want in a particular pivot table. The easiest way around this is to create an empty table with enough fields so your data will always fit. Then load your data and apply the hierarchy function and append the resulting data to the empty table that was created earlier.
Another way could be use the Depth parameter with the Hierarchy function, find the maximum depth value and store it in a variable. Then you could create a macro that creates a pivot table with all the necessary fields using the value in the variable as a counter for a loop that adds the fields to the pivot table. If you want to try that, you're on your own