Thanks for your replies everyone. Here's an example of the formula. For simplicity it's just referring to 100 rows.
{=IFERROR((D2-MIN(IF($A$2:$A$100=$A2,D$2:D$100)))/(MAX(IF($A$2:$A$100=$A2,D$2:D$100))-MIN(IF($A$2:$A$100=$A2,D$2:D$100))),"")}
The race identifiers are in column A
The data this cell refers to is in column D
Some races have no data in some columns so I need to trap the errors and leave the cell blank.
In light of what you have said, I can already see where I'm going wrong. I'm doing everything in one hit and calculating the same max and min figures over and over again. I would need 100 helper columns (max and min x 50) but if I could populate these first, all the information would be within the row and I could use normal formulas. However, I bet there's an easier way that I just can't see right now.
Typical output looks like this,
[TABLE="width: 448"]
<colgroup><col width="64" style="width:48pt" span="7"> </colgroup><tbody>[TR]
[TD="width: 64, bgcolor: transparent"]RaceID[/TD]
[TD="width: 64, bgcolor: transparent"]aDS[/TD]
[TD="width: 64, bgcolor: transparent"]bDS[/TD]
[TD="width: 64, bgcolor: transparent"]mDS[/TD]
[TD="width: 64, bgcolor: transparent"]aDS-Norm[/TD]
[TD="width: 64, bgcolor: transparent"]bDS-Norm[/TD]
[TD="width: 64, bgcolor: transparent"]mDS-Norm[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]61[/TD]
[TD="bgcolor: transparent, align: right"]96[/TD]
[TD="bgcolor: transparent, align: right"]58[/TD]
[TD="bgcolor: transparent, align: right"]0.91[/TD]
[TD="bgcolor: transparent, align: right"]0.93[/TD]
[TD="bgcolor: transparent, align: right"]0.88[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]67[/TD]
[TD="bgcolor: transparent, align: right"]103[/TD]
[TD="bgcolor: transparent, align: right"]66[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]40[/TD]
[TD="bgcolor: transparent, align: right"]53[/TD]
[TD="bgcolor: transparent, align: right"]40[/TD]
[TD="bgcolor: transparent, align: right"]0.60[/TD]
[TD="bgcolor: transparent, align: right"]0.51[/TD]
[TD="bgcolor: transparent, align: right"]0.61[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]46[/TD]
[TD="bgcolor: transparent, align: right"]46[/TD]
[TD="bgcolor: transparent, align: right"]46[/TD]
[TD="bgcolor: transparent, align: right"]0.69[/TD]
[TD="bgcolor: transparent, align: right"]0.45[/TD]
[TD="bgcolor: transparent, align: right"]0.70[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]54[/TD]
[TD="bgcolor: transparent, align: right"]81[/TD]
[TD="bgcolor: transparent, align: right"]59[/TD]
[TD="bgcolor: transparent, align: right"]0.81[/TD]
[TD="bgcolor: transparent, align: right"]0.79[/TD]
[TD="bgcolor: transparent, align: right"]0.89[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]51[/TD]
[TD="bgcolor: transparent, align: right"]51[/TD]
[TD="bgcolor: transparent, align: right"]51[/TD]
[TD="bgcolor: transparent, align: right"]0.76[/TD]
[TD="bgcolor: transparent, align: right"]0.50[/TD]
[TD="bgcolor: transparent, align: right"]0.77[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201015[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[TD="bgcolor: transparent, align: right"]0.00[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]71[/TD]
[TD="bgcolor: transparent, align: right"]79[/TD]
[TD="bgcolor: transparent, align: right"]75[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]0.98[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]60[/TD]
[TD="bgcolor: transparent, align: right"]70[/TD]
[TD="bgcolor: transparent, align: right"]60[/TD]
[TD="bgcolor: transparent, align: right"]0.85[/TD]
[TD="bgcolor: transparent, align: right"]0.86[/TD]
[TD="bgcolor: transparent, align: right"]0.80[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]71[/TD]
[TD="bgcolor: transparent, align: right"]80[/TD]
[TD="bgcolor: transparent, align: right"]68[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]0.99[/TD]
[TD="bgcolor: transparent, align: right"]0.91[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]71[/TD]
[TD="bgcolor: transparent, align: right"]81[/TD]
[TD="bgcolor: transparent, align: right"]71[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]1.00[/TD]
[TD="bgcolor: transparent, align: right"]0.95[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]54[/TD]
[TD="bgcolor: transparent, align: right"]54[/TD]
[TD="bgcolor: transparent, align: right"]54[/TD]
[TD="bgcolor: transparent, align: right"]0.76[/TD]
[TD="bgcolor: transparent, align: right"]0.67[/TD]
[TD="bgcolor: transparent, align: right"]0.72[/TD]
[/TR]
[TR]
[TD="bgcolor: transparent, align: right"]201019[/TD]
[TD="bgcolor: transparent, align: right"]57[/TD]
[TD="bgcolor: transparent, align: right"]67[/TD]
[TD="bgcolor: transparent, align: right"]55[/TD]
[TD="bgcolor: transparent, align: right"]0.80[/TD]
[TD="bgcolor: transparent, align: right"]0.83[/TD]
[TD="bgcolor: transparent, align: right"]0.73[/TD]
[/TR]
</tbody>[/TABLE]
<strike></strike>