From: Bernt Hansen <bernt@norang.ca>
To: Kene Meniru <kemeniru@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: evaluating rows or columns in org-table
Date: Wed, 30 Jul 2008 12:12:29 -0400 [thread overview]
Message-ID: <87d4kvqrki.fsf@gollum.intra.norang.ca> (raw)
In-Reply-To: 87od4fqtxp.fsf@gollum.intra.norang.ca
Bernt Hansen <bernt@norang.ca> writes:
> Kene Meniru <kemeniru@gmail.com> 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))))
Here's my attempt at fixing the student rank
| | Rank | names | grade 1 | grade 2 | grade 3 | Total | Letter grade |
|---+------+------------+---------+---------+---------+-------+--------------|
| # | 1 | student 01 | 91.80 | 96.40 | 97.00 | 95.07 | A |
| # | 3 | student 03 | 92.00 | 95.14 | 97.00 | 94.71 | A |
| # | 2 | student 02 | 88.78 | 89.15 | 98.00 | 91.98 | A |
| # | 4 | student 04 | 84.00 | 74.62 | 88.00 | 82.21 | B |
#+TBLFM: $7=($4+$5+$6)/3;%.2f::$8=if($7<60,F,if($7<70,D,if($7<80,C,if($7<90,B,A))))::@2$2=1::$2=@-1+1
If you sort the table by the total column descending to get the rank
If you sort the resulting table like this:
1) Position cursor on any total value
2) M-x org-table-sort-lines
3) N (for reverse numeric sort)
Then you need to set the ranking data sequentially starting from 1 on
row 1.
So... the final table looks like this:
-Bernt
next prev parent reply other threads:[~2008-07-30 16:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-30 14:08 evaluating rows or columns in org-table Kene Meniru
2008-07-30 15:21 ` Bernt Hansen
2008-07-30 16:12 ` Bernt Hansen [this message]
2008-07-30 16:16 ` Bernt Hansen
2008-07-30 17:49 ` Gabriel Peters
2008-07-30 18:05 ` Bernt Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d4kvqrki.fsf@gollum.intra.norang.ca \
--to=bernt@norang.ca \
--cc=emacs-orgmode@gnu.org \
--cc=kemeniru@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).