Thursday, February 19, 2009

Grading in Excel

Let’s say you have the following grades:

Score Grade Grade
[0,6] 1 E
(6,8] 2 D
(8,10] 3 C
(10,12] 4 B
(12,infinity) 5 A

You have the final score for a student, and you want to automate the grade calculation in Excel.

You have to use a function. The function you need is VLOOKUP.

You can use the VLOOKUP function to search the first column of a range (range: Two or more cells on a sheet. The cells in a range can be adjacent or nonadjacent.) of cells, and then return a value from any cell on the same row of the range.

The V in VLOOKUP stands for vertical. Use VLOOKUP instead of HLOOKUP when your comparison values are located in a column to the left of the data that you want to find.

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

  • lookup_value  Required. The value to search in the first column of the table or range. The lookup_value argument can be a value or a reference. If the value you supply for the lookup_value argument is smaller than the smallest value in the first column of the table_array argument, VLOOKUP returns the #N/A error value.
  •  

  • table_array  Required. The range of cells that contains the data. You can use a reference to a range (for example, A2:D8), or a range name. The values in the first column of table_array are the values searched by lookup_value. These values can be text, numbers, or logical values. Uppercase and lowercase text are equivalent.
  • col_index_num  Required. The column number in the table_array argument from which the matching value must be returned. A col_index_num argument of 1 returns the value in the first column in table_array; a col_index_num of 2 returns the value in the second column in table_array, and so on.

    If the col_index_num argument is:

    • Less than 1, VLOOKUP returns the #VALUE! error value.
    • Greater than the number of columns in table_array, VLOOKUP returns the #REF! error value.
  • range_lookup  Optional. A logical value that specifies whether you want VLOOKUP to find an exact match or an approximate match:
    • If range_lookup is either TRUE or is omitted, an exact or approximate match is returned. If an exact match is not found, the next largest value that is less than lookup_value is returned.

      Important   If range_lookup is either TRUE or is omitted, the values in the first column of table_array must be placed in ascending sort order; otherwise, VLOOKUP might not return the correct value.

      For more information, see Sort data.

      If range_lookup is FALSE, the values in the first column of table_array do not need to be sorted.

    • If the range_lookup argument is FALSE, VLOOKUP will find only an exact match. If there are two or more values in the first column of table_array that match the lookup_value, the first value found is used. If an exact match is not found, the error value #N/A is returned.
  •  

    So in my case the function is

    =VLOOKUP(T3;$X$3:$Y$7;2)

    It means I want to lookup the value of cell T3 in the range, and pick the result from the second column. The range contains the score and grade cells without the column headers.

    The lookup table should be

    Score Grade Grade
    0 1 E
    6,1 2 D
    8,1 3 C
    10,1 4 B
    12,1 5 A
    The score column values should be in increasing order. The score value column should contain the smallest numbers in the range.