You would have to script the import of the data a temporary table and then build the new records in the actual table by looping through the imported data, switching to a layout of the "good" table, add the data, and then switching back to the temp table layout get the next record. Repeat until done.
It should be able to be run as a scheduled script.
You can use import records to import from your current table into the new table three times, one for each of the three fields. (Each time, you can map a different field from the original field to the "data of field 1" field in the new table.)
Immediately after import records, the imported records forms a found set. Use replace field contents each of the three times to assign the field name text to the "label" field.
No intermediate table is necessary.
how many fields? do they change "name" at anytime? and how many records? if there a timestamp field? does the data in the field change (modified) once created?
I might use ExecuteSQL() for this. Or I might use XML/XSLT. Or I might just push the data from your table into the other table via script. In any case, you'd need to know what was already converted.