EXCEl中「學生等級成績統計系統」的設計與實現

2022-12-18 10:45:01 字數 5459 閱讀 9525

作者:李建銀文章**:本站原創

[內容摘要]microsoft excel是教師們所熟知的軟體,應用excel來編制學生成績自動統計系統,實現分數到等級的自動轉化、實現學生成績的自動排序、實現各等級人數的自動統計等,將大大提高成績統計的工作效率。許多事實證明:儘管用高階語言編制程式同樣也可達到上述目的,但從教師的熟知程度和對軟體的靈活應用程度上看,選擇microsoft excel軟體的函式來實現上述功能,將具備更多的優越性。

本文試述用microsoft excel編制「學生等級成績統計系統」的設計和實現方法,同時**如何增強系統通用性。

[關鍵詞]教育反饋、等級轉換、自動統計、microsoft excel

一、問題提出

成績統計是教育反饋中的重要環節。隨著宜昌市新課程改革如火如荼地推進,中考評價也一改以前的分數評價為等級評價,評價改革的實驗範圍也從去年僅在城區試點擴充套件到今年眾多周邊縣市。新的評價制度,更科學更有利於學生發展了。

同時教師在成績統計時的工作量也明顯加重了,出錯機率也明顯增多了:教師不僅要輸入分數,還要把各科轉換成等級,同時還要分別統計a、b、c、d、e、f六個等級的人數和百分率,而以前只需統計高分率和及格率等。按原有的成績統計方法,現在的工作量比以前增加了好幾倍。

雖然此類功能的軟體目前也存在,但多用高階語言編寫,教師對其資料的操作很受程度本身的限制。而教師對microsoft excel卻比較熟悉,應用excel的函式可方便地實現等級成績轉化和統計,教師可對excel表的輸出格式可自由調整,使整個系統更具靈活性。

二、設計思想

microsoft excel中提供了豐富的函式,涉及統計、數學與三角函式、查詢與引用、邏輯、文字、資訊、資料庫、財務、日期與時間等九大塊功能函式,完全可以滿足等級成績統計系統的編制需求。雖然microsoft excel中還提供巨集的支援,但從應用角度上看,不使用巨集的系統在教師具體使用中遇到的問題會更少,不少系統的防火牆可能會禁止巨集的執行,也有許多巨集語句需要系統外掛程式支援。所以單純使用函式來實現系統,使系統更綠色,系統的易用性和通用性更好。

利用microsoft excel的選單工具不僅可以方便地設定單元格的格式及列印報**式,還可方便地實現單元格或工作表的鎖定、資料有效性檢查和系統的加密等。《學生等級成績統計系統》按照實施等級評價的學校對成績統計的要求,按教師最熟知的報**式設計表單。使用該系統,只需教師或成績統計人員簡單的幾項設定、再錄入或匯入學生學號、姓名及語數外物化五科的原始成績,其它各項系統將自動統計完成。

從而大大提高了初級中學的學生等級成績統計的工作質

量和工作效率。

三、系統的構成和設計1、系統設計

(1)系統開發環境:

microsoft excel 2003、windows xp(2)系統應用環境:

microsoft excel 2000(xp、2003等)、windows2000(xp、2003等)(3)系統結構:由乙個主檔案和若干說明檔案組成。

◆主檔案:是乙個microsoft excel工作薄。它由若干工作表組成,包括:

「設定」表、班級表(1班、2班、…)、中間過程表(「m」表)、年級排序表(「年級(錄入序)」表、「年級(學號序)」表、「年級(等級序)」表)、統計表(「單科統計」表、「總分統計」表)。

各工作表間資料相關如下圖1所示:

圖1:表資料相關圖◆說明檔案:txt格式檔案或word格式檔案,介紹系統功能及使用方法等。

2、具體功能設計:

(1)分數到等級的轉化:可以使用函式if,對條件進行真與假的判斷,並作對應出等級值的輸出。以語文為例:

按照等級統計的要求,100—120分,a等;90—99分,b等;80—89分,c等;70—79分,d等;60—69分,e等;0—59分,f等。則函式語句為:

=if(d4>=100,"a",if(d4>=90,"b",if(d4>=80,"c",if(d4>=70,"d",if(d4>=60,"e","f")))))

注:d4為語文原始分數所在單元格。

(2)等級字串的合成:可以聯合concatenate函式和countif函式來實現。countif函式,可計算指定區域中滿足給定條件的單元格的個數,如統計j4至n4單元格中「a」的數目,則函式語句為:

=countif(j4:n4,"a"),與此類推,統計出「b」、「c」、「d」、「e」、「f」的數目。concatenate函式,可將幾個文字字串合併為乙個文字字串,上述「a」、「b」、「c」…的數目分別與「a」、「b」「c」…字元本身連線合併,生成諸如「2a1c2d」的形式。

(3)等級總分的計算:使用if()語句先給每個等級賦分,再用運算子「+」號來求和。如「a」為6分,「b」為5分,「c」為4分,「d」為3分,「e」為2分,「f」為1分,則給j4單元格賦分的語句為:

=if(j4="a",6,if(j4="b",5,if(j4="c",4,if(j4="d",3,if(j4="e",2,if(j4="f",1,0))))))

(4)名次的生成:使用rank()函式和countif()函式來實現。例如要按等級總分由高到低排序,同時符合金牌優先原則(即:

等級總分相同時,a等級數多者優先;同時如a等級數也相同,b等級數多者優先,以此類推),則可以按以下思路設計:

step1:使用countif()函式分別統計每個學生「a」、「b」、「c」…的等級數目;

step2:按總等級分(如q4單元格)--a等個數(如t4單元格)--b等個數(如u4單元格)--c等個數(如v4單元格)--d等個數(如w4單元格)--e等個數(如x4單元格)的順序,計算出乙個綜合指標參量,寫入單元格y4:=q4*100000+t4*10000+u4*1000+v4*100+w4*10+x4;

step3:使用rank()函式返回單元值(如y4單元格)在數字列表(如y4至y83單元格)中的排位:=rank(y4,y$4:y$83,0)。

至此,可生成特定要求的成績名次。

(5)資料的重排:要實現按特定要求的資料重新排列,如按等級總分從高到低排列、按學號順序的重新排列等,需考慮以下幾個問題:

◆怎樣生成乙個索引值,而這個索引值將是資料重排時索引的唯一依據;◆怎樣保證所有的資料都能參與到重排,且不出現掉隊的記錄,如當幾條記錄同條件滿足要求時,不能出現乙個記錄重排數列中有而另一條記錄數列中卻不存在的現象。

解決第乙個問題的方法與名次生成過程的做法類似,即按要求把重排的關鍵唯一性指標合成新的數值,該數值的大小將決定重排時的位次;解決第二個問題的方法則是為原始的每一條記錄設定乙個唯一性序號,將它作為資料重排時的最後乙個關鍵性引數。

具體資料重排過程需要三個函式的參與:

◆concatenate(),將幾個文字字串合併為乙個文字字串,從而生成新的重排索引值。本系統是這樣實現的:

=concatenate(99999999-y4,999-(99-a4))),其中y4單元格為符合金牌優先原則的等級序的綜合指標資料,而a4單元格則是原始資料的唯一性序號,用99去「減」是為了保證每次生成的新字串位數相同;

◆small(),返回資料集中第k個最小值;

◆match(),返回在指定方式下與指定數值匹配的陣列中元素的相應位置;本系統用它與small()函式聯用,實現了最小值相對位置的返回,並將值寫至aa4單元格;

◆index(),返回表或區域中的值或值的引用。以本系統為例,需重排的原始資料範圍為b4單元格至r83單元格,則用下述語句就實現了指定範圍、

符合要求的資料重排:

= index($b$4:$r$83,$aa4-3,column(c$3))。3、系統通用性考慮:

(1)變數設計:根據系統通用性的要求,本系統應有下述幾個相關變數:學校名稱、年級名稱、班級簡稱、班級表大標題、年級總表大標題及系統當前時間等變數。

其中前五個變數均為文字變數,可設定相關的單元格,接受使用者輸入,其他地方要用時則直接引用該單元格,這幾個變數可集中在乙個表中等待使用者輸入,本系統「設定」表將完成上述變數的設定;後乙個變數為日期變數,在需引用處使用:=today()語句。

(2)容錯設計:◆空位容錯:考慮到最終用在進行資料錄入時可能出現的情況,比如缺考的成績不做記錄出現空位,或用其它標誌進行標記等,為防統計時出錯,在語句設計時用if()函式過濾;

◆空行容錯:是指系統設計為每班八十人班額,而實際人數未達到這個數,對空行的處理。可對空行賦於最大的重排索引值,從而將空行置於重排資料陣列的最後,並用if()函式讓之不顯示出來。

◆空表容錯:是指系統預設的年級最大班級數的可能大於實際的班級數,這時閒置的工作表會導致總表統計時相關行出錯。本系統的解決辦法是使用

iserror()函式,用它來檢驗相關單元格的數值是否有錯,如有錯則賦值為「true」,系統在進行資料重排或資料統計時將參照這個引數進行,從而過濾到可能出現的錯誤。因此本系統可根據實際年級的班級數,刪除多餘的班級工作表。

(3)非工作區保護:為了防止使用者在使用過程中誤改公式或格式,對於除使用者錄入區外的其它區域加以鎖定。

(4)列印報表調整:列印輸出樣式,會根據參考班級人數、班級數、參考科目的不同而不同。當班級人數較多時,可允許自行調整行高,讓乙個班級的成績表能在一張a4紙張上列印;在分科統計和總分統計時,無有效資料的行或列可以隱藏,使之不顯示和不列印。

上述目標可在非工作區保護過程設定中,通過勾選「設定行格式」和「設定列格式」選項來實現。

4、功能改進和擴充

◆可進一步優化**,減少整個系統的計算量,加快系統的資料響應速度。◆如果用於全縣學校的等級成績分析,可將每個班級表的班額擴大為每校每年級最大可能人數;

◆可加入除語數外物化的其它學科的統計;

◆可增加圖表分析功能,用圖表更形象展示各等級人數的分布情況;四、應用舉例

1、班級成績表生成

作為班主任的***,在進行簡單的班級設定後,轉入對應的班級工作表,從其它電子**複製過來學生的學號和姓名,並開始錄入學生語數外物化各科的成績。這時他發現,當他錄入某生成績之後,該生各科對應的等級已自動生成了,

而且總等級分也正確顯示了。當本班的成績全部錄入後,***驚喜地看到了每位學生的名次,特別是在資料錄入區域的右側(用滑鼠向右拖動水平滾動條),學生成績正按等級總分由高到低重新整齊排列著。***點選了一下工具欄上的「列印預覽」,發現連列印格式都已經設好了,可***唯一不滿意的是,全班學生成績不能在同一頁上顯示,於是***用滑鼠選中所有學生成績記錄所在的行,點選右鍵,選擇「行高」,重新輸入乙個較小的行高值,再「列印預覽」時,***滿意了,於是,在a4紙張上列印出了一張漂亮的學生成績表。

2、年級成績彙總與統計

作為教務主任楊主任,在組織好各班成績後,轉入名為「年級(錄入序)」的工作表,認真核對了各班錄入的原始成績。確定無誤後,他轉入了名為「年級(學號序)」的工作表,按學號查詢了幾位學生的等級成績和他們的年級排名。全年級這次考試到底哪些學生考得比較好呢?

楊主任轉入名為「年級(等級序)」的工作表,他高興地看到:全年級所有學生的成績正按等級總分從高到低的順序整齊排列著。至於全年級各科各班又考得如何,楊主任轉入了名為「分科統計」和名為「總分統計」的工作表,發現各班各科成績正按等級a、b、c、d、e、f、總等級分等專案顯示的清清楚楚,這使楊主任很方便地對比了解了各科各班的成績情況。

最後,楊主任點選了工具欄上的「列印」,整齊漂亮的彙總表出現了……

「學生等級成績統計系統」是根據我市我縣初級中學的等級評價要求編制的,適合我市特別是我縣所有初級中學,用於月考、期中考試、期末考試的等級成績統計。本系統系統要求低,教師易掌握。本系統自網路發布以來,被全縣一些學校試用,大大提高了這些學校的等級成績統計工作的效率。

用Excel統計學生成績技巧

對於其他在兩個分數之間的分數段的人數統計,需要用兩個countif 函式相減。如在a16單元格中輸入公式 countif c 2 c 13,100 countif c 2 c 13,90 即用小於等於100的人數減去小於90的人數。如果要統計80 89 70 79與60 69分數段的人數,只要利用自...

如何用excel快速統計學生成績

用excel函式就可以解決。基本要用到這幾個 1 平均分 erage 資料區 假設統計語文,其中的b3 b80是分數,那麼在b81中輸入 erage b3 b80 並回車並可以了。然後把b81中的公式向右填充。2 總分用sum 方法同上,但要在橫向上最後一科的第乙個人上 如g3 輸入 sum b3 ...

中學學生成績統計評估方案

xx中學學生成績統計評估方案 建議稿 一 制定參考標準評估分 注 1 制定參考標準目的在於為評價學生和班級的發展狀況確定乙個基本的參考依據 2 以參考標準評估分為依據,確定學生個體在同類別中的排名位置和班級總平在迥類別中的排名位置,以此作為學生個體和班級整體發展狀況的參考位置 3 參考標準提供給校級...