The way grand total works is based on the column if you take Sum in the column it will give a grand total of the sum if you want average change you calculation to average and grand total will be based on average.
Let me know if this not you are expecting or give us sample data.
So i have created 2 calculations
Avg and Sum
I am checking if total count of columns= total rows in a table then give me "average" else give me "
Sum = CALCULATE(SUM('Table 1'[SPHA's Filled]),ALLEXCEPT('Table 1','Table 1'[Job: Name])) ( which will give you sum)
Avg =CALCULATE(AVERAGE('Table 1'[SPHA's Filled]),ALLEXCEPT('Table 1','Table 1'[Job: Name])) (which will give you average)
Grand total Formula :
Total = if(COUNT(a[write your column])=COUNTROWS('Table 1'),[avg],[sum])
You may refer to the following post.