If you have to display an entire year, Step Number 1 is to change the format. Horizontal scrolling is horrible and your users should not be subjected to it.
In any event, you are going to have to be methodical. You'll probably have to use query of queries at some point.
Horizontal scrolling is horrible. However, my users requested it that way, so I programmed in locked columns to keep the data most needed viewable at all times. I do plan on modifying later and allowing to select a person to view vertically.
Anyway, I already have all the data in tables, with query of queries for other calculations. I just need guidance on how to perform/solve this last bit of the puzzle. If anyone can assist, please chime in.
Here is something from one of my pages that does something similar. It might give you some ideas.
<!--- Length of stay --->
<th align="left" colspan="1">Mean Length of Stay</th><td colspan="#numberofmonths#"> </td>
<cfloop list="7B,7C,7D" index="unit">
<cfquery name="ThisRow" dbtype="query">
select year_month, meanlos
where unit_code = <cfqueryparam cfsqltype="cf_sql_char" value="#unit#">
order by year_month
<tr <cfif ListFind("7B,7D", unit, ",") gt 0>bgcolor="#server.lightgray#"</cfif>>
</cfloop> <!--- generate rows --->
<cfloop query="loscluster"><td align="right">#meanlos#</td></cfloop>
<tr><td colspan="#TotalColumns#"><hr /></td></tr>