2012年10月23日 星期二

LiberOffice 用Rank計算排名

 

雖然我們可以利用排序功能計算每個同學的排名,但排序後會導致座號順序錯亂,又要多幾個步驟來還原,資料少時還好,資料多時就顯得不夠效率,在 Calc 中提供 Rank 這個函數計算排名,只要設定好,資料再多也不怕,現在讓我們學習 Rank吧。

首先先讓我們看看 Rank 函數的語法:

RANK(number; ref; Order)

number 是要決定其排列等級的數值。

ref 是參照欄位,也就是排序的依據。

Order 是排序的類型,看是由大排到小或是由小排到大,製作成績單用內定值就可以,不用特別設定。

 

現在讓我們練習 Rank 函數的應用吧

  1. 選取儲存格 I3
  2. 點選Fx插入函數
  3. 選擇 RANK
  4. number(C) 請輸入 I3
  5. ref(D)請輸入 H3:H12
  6. 按下確定,完成排名

image

image

 

接著,我們讓我們試試看複製公式會發生甚麼情況:

image

怎麼回事,名次亂七八糟,而且不對,究竟出了甚麼問題?

讓我們逐一檢視I3~I12的儲存格內的函數設定,我們發現這些儲存格在資料編輯列上所顯示的公式分別為:

=RANK(H3;H3:H12)

=RANK(H4;H4:H13)

=RANK(H5;H5:H14)

=RANK(H6;H6:H15)

=RANK(H7;H7:H16)

=RANK(H8;H8:H17)

=RANK(H9;H9:H18)

=RANK(H10;H10:H19)

=RANK(H11;H11:H20)

=RANK(H12;H12:H21)

我們發現,當填滿空點往下拖曳時,函數內的設定儲存格也會往下跟著自動改變(H3--->H4;H3:H12--->H4:H13......),這就是所謂的相對參照

以I12的=RANK(H12;H12:H21)來看:

我們會發現I12是拿儲存格H12和H12:H21(木人加上底下的九個空格)來做比較。我們很容易發現,自己和自己比,無論怎麼比都是第一名。

那麼,我們要如何修正這個函數的設定呢?我們在設定好儲存格I3之後先要做一個簡單的修改。我們必須讓=RANK(H3;H3:H12)裡面的H3:H12(全班總分)能夠固定不動,也就是所謂的絕對參照。之後再複製公式就可以了。

要如何讓H3:H12固定不動呢?我們再度檢視I3~I12的儲存格內的函數設定發現其實H在這裡是不會變的,因此我們只要讓3和12不要改變即可。此時我們可以分別在3和12的前面加上$的符號讓整個公式變成=RANK(H3;H$3:H$12)就可以了。接著在使用填滿控點往下拖曳到I12就完成所有的名次排序。

image

你可以試著再檢視I3~I12內的公式,他們分別已經變成:
=RANK(H3;H$3:H$12)
=RANK(H4;H$3:H$12)
=RANK(H5;H$3:H$12)
=RANK(H6;H$3:H$12)
=RANK(H7;H$3:H$12)
=RANK(H8;H$3:H$12)
=RANK(H9;H$3:H$12)
=RANK(H10;H$3:H$12)
=RANK(H11;H$3:H$12)
=RANK(H12;H$3:H$12)

 

沒有留言: