I'm not sure if this is similar to the technique Chris mentioned in a somewhat cryptic comment on another templating blogpost.
I use a naming convention for three kinds of fields. To do the actual transformation, I use a WebQueryOpen-agent.
Computed for display, allow multiple values. These fields fetches the data (using dblookup/-column). One field can be used by multiple templates.
Computed for display. These fields contain the description of how the data should be transformed. The label should correspond with the label of a lookup-field. Example of template.
Computed for display. These fields will be filled by the result of the transformation. The label/description should correspond the label/description of a template-field.
This agent contains the transformation logic/fills the transformed-fields.