徐博龍
摘要:在人工排課的過程中,通常需要錯開已占用的排課通道,防止課程沖突,而要完成這項工作,如果僅靠人工來做,需要花費很多時間,不僅效率低,且容易出錯。該文旨在解決人工排課過程中效率低、出錯概率大的問題,介紹使用Textjoin等相關(guān)函數(shù)解決人工排課中人工計算的問題,幫助一線教務(wù)人員利用計算機技術(shù)拓寬人工排課的工作思路,提高工作效率。
關(guān)鍵詞:教務(wù)工作;人工排課;電子表格;函數(shù);數(shù)組公式
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)09-0088-02
1 問題的提出
在人工排課的實踐過程中,常常需要錯開其他課程的排課通道,防止同一班級在同一時間段排上多門課程。如果用人工計算已占用時間段、空閑時間段,這樣的工作量無疑是煩瑣的,且容易出錯,往往會造成課程沖突的問題。本例中,要求根據(jù)已占用的排課通道,在電子表格中自動計算出《計算機應(yīng)用基礎(chǔ)》課程可排課的時間通道。
2 計算模型的建立
2.1 時間段的規(guī)定
本例中規(guī)定每周為五天,即周一至周五。每天分為三個上課時間段,即上午、下午、晚上,不限節(jié)數(shù)。例如:周一上午、周一下午、周一晚上,依此類推。
2.2 列出各課程已占用的時間段(見表1:示例表)
因課程(指全校公共課,以下同)排課的優(yōu)先級不同,越靠前代表排課的優(yōu)先級越高,即該課程擁有較優(yōu)先排課的資格。本例中,僅列出部分課程,它們排課的優(yōu)先級如下:《公選課》《體育》《思政課》(包括《思想道德修養(yǎng)與法律基礎(chǔ)》《形勢與政策》兩門課)、《職業(yè)英語》《大學(xué)生健康與心理衛(wèi)生》《創(chuàng)新創(chuàng)業(yè)教育》《計算機應(yīng)用基礎(chǔ)》。可根據(jù)具體的情況和根據(jù)來增加或刪除課程,調(diào)整課程排課的優(yōu)先級,并規(guī)定節(jié)數(shù)。
3 計算步驟的設(shè)計思路
首先在J列增加計算輔助列,并在J2:J16中分別填寫上周一上午、周一下午、周一晚上,依此類推,至周五晚上。并根據(jù)B2:G2的時間通道,在H2中計算出計算機應(yīng)用基礎(chǔ)課程可排課的時間通道。
3.1 合并已占用的時間通道
利用PHONETIC函數(shù)合并B2:G2的時間通道,即PHONETIC(B2:G2),得出以下結(jié)果:周五下午周三下午周二上午、周四上午周一下午、周三下午周三晚上周四晚上。
3.2 替換分隔符
利用SUBSTITUTE函數(shù)將3.1中的結(jié)果中的“、”去掉,即SUBSTITUTE(PHONETIC(B2:G2),"、",),得出以下結(jié)果:周五下午周三下午周二上午周四上午周一下午周三下午周三晚上周四晚上。
3.3 查找已占用的時間段
利用FIND函數(shù)查找已占用的時間段,即FIND($J$2:$J$16,SUBSTITUTE(PHONETIC(B2:G2),"、",)),這個公式需要用數(shù)組公式才能實現(xiàn)。但結(jié)果為錯誤值,因為FIND函數(shù)有一個特性:如果查找到相關(guān)的文本,就是一個數(shù)值,否則就是一個錯誤值。
3.4判斷是否存在已占用的時間段
利用IF函數(shù)判斷是否存在被占用的時間段,即IF(FIND($J$2:$J$16,SUBSTITUTE(PHONETIC(B2:G2),"、",)),"")。此公式可以理解為:如果在SUBSTITUTE(PHONETIC(B2:G2),"、",)里找到$I$2:$I$17相同的文本的,就用""代替。
3.5 判斷是否存在計算上的錯誤
利用IFERROR函數(shù)計算是否存在錯誤,即IFERROR(IF(FIND($J$2:$J$16,SUBSTITUTE(PHONETIC(B2:G2),"、",)),""),$J$2:$J$16),因為IF(FIND($J$2:$J$16,SUBSTITUTE(PHONETIC(B2:G2),"、",)),"",計算結(jié)果有錯誤值,但這些錯誤值才是沒有被占用的時間(通道),所以要用IFERROR代入去。
3.6 進行文本連接,得出所有未占用的時間段
利用TEXTJOIN函數(shù)進行結(jié)果的文本連接格式,最后得出未占用(可排課)時間段,因在以上的計算過程中存在數(shù)組的計算問題,所以本列中需要使用數(shù)組公式{}才能計算出最后的結(jié)果,數(shù)組公式的快捷鍵為:CTRL+SHIFT+ENTER,即{TEXTJOIN("、",TRUE,IFERROR(IF(FIND($J$2:$J$16,SUBSTITUTE(PHONETIC(B2:G2),"、",)),""),$J$2:$J$16))}。最后得出結(jié)果為:周一上午、周一晚上、周二下午、周二晚上、周三上午、周四下午、周五上午、周五晚上。即可在計算出的時間段來進行排課。
4 結(jié)束語
以上操作思路,解決了工人排課過程中工作量大、效率低等問題,為一線的教務(wù)人員提供解決問題的思路和方法。當(dāng)然,可以在本列的基本上進行其他的限制和要求,例如:某個時間段不排課,或者將某個時間段細分到節(jié)次等。另外,實現(xiàn)本例使用的OFFICE版本是MS OFFICE365或者MS OFFICE2019,WPS OFFICE2016。
參考文獻:
[1] Excel Home.Excel 2016函數(shù)與公式應(yīng)用大全[M].北京:北京大學(xué)出版社,2018.
[2] 賽貝爾資訊.高效隨身查——Excel函數(shù)與公式應(yīng)用技巧[M].北京:清華大學(xué)出版社,2018.
[3] 布克科技,文靜,胡文凱,等. WPS Office 2016從入門到精通[M].北京:人民郵電出版社,2018.
【通聯(lián)編輯:王力】