[Top][All Lists]
[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