The simple case of this is accomplished with the built-in Subfield() function in QlikView - nothing complicated required!
Key as Key_1,
Subfield( Value, ';' ) as Value_1
What's happening? When used in a load statement and without specifying the optional third argument denoting the specific subfield you are after, the Subfield() function will generate one record for each subfield automatically.