emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: evaluating rows or columns in org-table


From: Bernt Hansen
Subject: [Orgmode] Re: evaluating rows or columns in org-table
Date: Wed, 30 Jul 2008 11:21:22 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Kene Meniru <address@hidden> writes:

>   |   |   | names      | grade 1 | grade 2 | grade 3 | Total |   |
> Letter grade |
>
> |---+---+------------+---------+---------+---------+-------+---+--------------|
>   | # | 1 | student 01 |   91.80 |   96.40 |   97.00 | 95.07 | 1 | C
> |
>   | # | 2 | student 02 |   88.78 |   89.15 |   98.00 | 91.98 | 2 | B
> |
>   | # | 3 | student 03 |   92.00 |   95.14 |   97.00 | 94.71 | 3 | B
> |
>   | # | 4 | student 04 |   84.00 |   74.62 |   88.00 | 82.21 | 4 | B
> |
> #+TBLFM: $7=($4+$5+$6)/3;%.2f
>
> Sample letter grade calculation:
> 90-100 = A
> 80-89  = B
> 70-79  = C
> 60-69  = D
>  0-59  = F
>
> I am deeply sorry if this has been addressed before here. I have
> searched but could not find any reference.
> I am a teacher and have been using org-mode in combination with noweb
> as a class manager. I also use moodle and blackboard but I like to
> keep my lecture notes and student grades local on my machine. I
> typically have the above table for student grades (usually
> substantially more than that). I am able to calculate many things like
> averages, etc., but would like to have letter grades and "best
> performing" comments by the students doing as well.
>
> Starting with letter grades, is there a way I can evaluate the Total
> column and assign letter grades as shown above? Thanks

It's a bit ugly but I think it works...

|   |   | names      | grade 1 | grade 2 | grade 3 | Total |   | Letter grade |
|---+---+------------+---------+---------+---------+-------+---+--------------|
| # | 1 | student 01 |   91.80 |   96.40 |   97.00 | 95.07 | 1 | A            |
|   |   |            |         |         |         |       |   |              |
| # | 2 | student 02 |   88.78 |   89.15 |   98.00 | 91.98 | 2 | A            |
|   |   |            |         |         |         |       |   |              |
| # | 3 | student 03 |   92.00 |   95.14 |   97.00 | 94.71 | 3 | A            |
|   |   |            |         |         |         |       |   |              |
| # | 4 | student 04 |   84.00 |   74.62 |   88.00 | 82.21 | 4 | B            |
|   |   |            |         |         |         |       |   |              |
#+TBLFM: 
$7=($4+$5+$6)/3;%.2f::$9=if($7<60,string("F"),if($7<70,string("D"),if($7<80,string("C"),if($7<90,string("B"),string("A")))))

There might be a better/cleaner way to do this.

This also seems to work:

#+TBLFM: 
$7=($4+$5+$6)/3;%.2f::$9=if($7<60,F,if($7<70,D,if($7<80,C,if($7<90,B,A))))

-Bernt




reply via email to

[Prev in Thread] Current Thread [Next in Thread]