First, "has to be laid out this way per someone's request" isn't a good enough reason for a table design. Report design or query design, sure, but not table design.
Hmmm. Okay, I see what they are asking you to do. This is taking normalization to a silly extreme, IMHO.
The solution is trivial, though.
You don't have to actually transpose the data at all to make that query.
Create a table Called tblFields with one field called Variable. Add three records, Units, Cost and Price.
Code:
tblFields
Variable Text "Units", "Cost", "Price"
Query1:
SELECT
TR.Product,
TR.BrandDetail,
TF.Variable,
IIF(TF.Variable = "Units",TR.Units,
IIF(TF.Variable = "Price",TR.Price,
IIF(TF.Variable = "Cost",TR.Cost,0))) AS VarValue
FROM
RawData AS TR,
tblFields AS TF;
If you really must do so, then you can make that query into a maketable query and create a table of the hypernormalized data. I can't think of a useful application for that table layout, but it can be done.
Better practice to just run that query when the boss wants to see it that way.