Average letter gradings

jimbobrich

New Member
Joined
Feb 27, 2016
Messages
5
Hi,

I have a table of data, column A would have the persons name. Column B - F will have the headings of the 5 tests.

The data will be dumped from 3rd party software in the form of letter grades.


I'd like the formula to look up column A, and every time the students name is matched it Averages the grade in column B. Then ill copy the formula for Column, c,d,e,f.

The tests will be run every week and the data added.

[TABLE="******* 500"]
<tbody>[TR]
[TD]Name[/TD]
[TD]Test1[/TD]
[TD]Test 2[/TD]
[TD]Test 3[/TD]
[TD]Test 4[/TD]
[TD]Test 5[/TD]
[/TR]
[TR]
[TD]Luke[/TD]
[TD]A[/TD]
[TD]B[/TD]
[TD]C[/TD]
[TD]D[/TD]
[TD]E[/TD]
[/TR]
[TR]
[TD]Brad[/TD]
[TD]A[/TD]
[TD]A[/TD]
[TD]G[/TD]
[TD]D[/TD]
[TD]F[/TD]
[/TR]
[TR]
[TD]Fred[/TD]
[TD]A[/TD]
[TD]A[/TD]
[TD]A[/TD]
[TD]B[/TD]
[TD]B[/TD]
[/TR]
[TR]
[TD]Jeff[/TD]
[TD]D[/TD]
[TD]D[/TD]
[TD]E[/TD]
[TD]A[/TD]
[TD]A[/TD]
[/TR]
</tbody>[/TABLE]


Thank you in advance for your help.
 

Excel Facts

Whats the difference between CONCAT and CONCATENATE?
The newer CONCAT function can reference a range of cells. =CONCATENATE(A1,A2,A3,A4,A5) becomes =CONCAT(A1:A5)
You need to create a lookup table somewhere to convert grades to points, and then use this to calculate your average grade using INDEX and MATCH.
 
Last edited:
Upvote 0

Excel 2010
ABCDEFGH
1NameTest_1Test_2Test_3Test_4Test_5Average grade letters
2AngieAA+ACDB
2e
Cell Formulas
RangeFormula
H2{=IFERROR(INDEX({"A+","A","B","C","D","E","F"},ROUND(AVERAGE(IF(B2:F2<>"",MATCH(B2:F2,{"A+","A","B","C","D","E","F"},0))),0)),"")}
Press CTRL+SHIFT+ENTER to enter array formulas.


What Grades are possible?
Do you have grades like A+?

What do you mean by "Averages the grade in column B"
 
Last edited:
Upvote 0
Hi Dave,

Thanks for your reply.

Basically what will happen is each person will take all 5 tests weekly the score will be A-G rating. i have a bout 97 people doing the tests, the data will be dumped out by 3rd party software.

I'd just like to paste the data straight into the table as above, adding the next week below. What i want to do is find each persons average of each test over the year.


so my results would look like

Luke test 1 yearly average
Luke test 2 yearly average
 
Upvote 0
Hi jimbobrich

Did you try the formula?

Edit the formula to reflect the relevant Grades (the score will be A-G rating).

Ensure the rounding calculation is consistent with your requirements.
 
Upvote 0
Did you try a Pivot Table?

If you require a formula, you may be able to adapt the suggestion that calculates the average for the 5 tests.
 
Upvote 0
Hi Jamie
The following shows 2 additional ideas. They use a helper column that provides a number for the grades.
I used an Excel table since the data range is probably dynamic.

The Data is filtered by name.


Excel 2010
ABCDE
4BillC3C
5
6NameLetterNum
7BillA1
9BillA1
11BillG7
13
2e
Cell Formulas
RangeFormula
B4=LOOKUP(C4,Grades2)
C4=SUBTOTAL(101,Table1[Num])
C7=LOOKUP(B7,Grades)
C9=LOOKUP(B9,Grades)
C11=LOOKUP(B11,Grades)
E4=LOOKUP(AVERAGEIF(Table1[[Name ]],A4,Table1[Num]),Grades2)
Named Ranges
NameRefers ToCells
Grades='2e'!$J$7:$K$13
Grades2='2e'!$K$7:$L$13
 
Last edited:
Upvote 0
Excel 2010
ABCDEFGH
NameTest_1Test_2Test_3Test_4Test_5
AngieAA+ACDB

<colgroup><col><col><col><col><col><col><col><col><col></colgroup><thead>
</thead><tbody>
[TD="align: center"]1[/TD]

[TD="align: right"][/TD]
[TD="align: right"]Average grade letters[/TD]

[TD="align: center"]2[/TD]

[TD="align: right"][/TD]

</tbody>
[TABLE="******* 85%"]
<tbody>[TR]
[TD]Array Formulas[TABLE="******* 100%"]
<thead>[TR="bgcolor: #DAE7F5"]
[TH="******* 10"]Cell[/TH]
[TH="align: left"]Formula[/TH]
[/TR]
</thead><tbody>[TR]
[TH="******* 10, bgcolor: #DAE7F5"]H2[/TH]
[TD="align: left"]{=IFERROR(INDEX({"A+","A","B","C","D","E","F"},ROUND(AVERAGE(IF(B2:F2<>"",MATCH(B2:F2,{"A+","A","B","C","D","E","F"},0))),0)),"")}[/TD]
[/TR]
</tbody>[/TABLE]
Entered with Ctrl+Shift+Enter. If entered correctly, Excel will surround with curly braces {}.
Note: Do not try and enter the {} manually yourself[/TD]
[/TR]
</tbody>[/TABLE]
Assuming no plus grades (e.g., A+) or minus grades (e.g., A-), then this shorter (two less function calls) array-entered** formula appears to produce the same results as your formula...

=CHAR(ROUND(AVERAGE(0+CODE(B3:F3)),0))

**Commit this formula using CTRL+SHIFT+ENTER and not just Enter by itself
 
Upvote 0

Forum statistics

Threads
1,224,823
Messages
6,181,181
Members
453,022
Latest member
Mohamed Magdi Tawfiq Emam

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top