黎輝
在電大全國統考中,由省級電大進行考場編排后,發給地州電大一個《考場簽到單》(也就是原來的考場座次表),而在組織考試時,需要將此考場號和考場保密號提取出來,生成一個表格,進行對應,這個過程如果使用人工去一一查找出來費時費力,經過一些摸索,總結出不同的幾種方法。
這是最早使用的方式,其原理就是使用VBA程序對表格內容進行一行一行的比較,當找到內容以“考場號:”開頭的單元格時,就將此行內考場號(A列)和考場保密號(D列)的內容提取出來,放在一個單獨的工作表中,全部提取完畢再進行一些格式的設置即可。
這種方法優點是實現較為簡單,全部在Excel中實現,不需要其他軟件工具的參與。缺點是要求操作人有一定的VBA的操作經驗,因為要將編寫好的程序一個一個地拷貝到新的《考場簽到單》文件中去,然后生成,因此操作步驟稍顯繁瑣,而且易出錯。
考慮到第一種方法的缺點,為了便于操作人的使用,降低其上手難度,筆者又使用編程工具開發了一個工具軟件,此軟件的功能就是能夠通過幾次選擇就生成一個表格。
該軟件是操作難度最低的軟件,上手非常快,效率也最高。在操作時,只需要選擇一下考場簽到單的文件,其他的三個選項都是默認,點擊“生成保密號文件”即可在原文件的文件夾中生成一個新的表格,使用非常簡單。其缺點在于需要安裝軟件,同時因使用C#開發的此軟件,因此在未安裝.net框架的機器上必須要安裝.netFrameWork2.0。不過安裝完成后,就可以很方便地使用了。
以上兩種方法的優勢很明顯,尤其是第二種方法,使用起來非常方便,但同樣兩種方法都需要編程人員的配合,這一點限制了很多學校。筆者在一次幫人解決一個Excel問題時,發現原來使用Excel的函數就可以解決這個問題,而且,所有操作只要對Excel較為熟悉的人都可以自行完成,這下,就不存在什么問題了,所有人都可以學會這種方法。
這里使用的是Excel內置的“查找與引用”類函數中的VLookUp。這個函數的作用是搜索表區域首列滿足條件的元素,確定待檢索單元格在區域中的行序號,再進一步返回此行中指定單元格的值。共有4個參數,分別是要查找的內容所以的單元格、查找區域、要返回的值的在表中的列號、是否模糊查找。
要將此函數應用在提取考場號和保密號的操作中,其原理是先手工建立一個O列的考場號列,再在P列中利用函數將考場號所對應的考場保密號從考場簽到單中提取出來填入P列。具體如下:
1.建立考場號列。只需要找到考場簽到表中的第一個考場號和最后一個考場號,使用自動填充功能即可完成,不過要注意,此列的值要為文本型。
在P2單元格中輸入公式:=RIGHT(VLOOKUP("考場號:"&O2,$A:$H,4,0),8)。
公式說明:VlOOKUP("考場號:"&O2,$A:$H,4,0)為核心,其含義為在列A到列H區域($A:$H)的首列中查找值為“考場號:2001”(也就是公式中的"考場號:"&O2,其中O2單元格的值為2001),并取出查找到的那一行中的第4列的值,使用的是精確查找的方式。因為這樣取出來的值就是“考場保密號:09009341”,為了只提取“09009341”,所以使用RIGHT函數只取VlOOKUP函數返回值中的最右邊的8位。
2.在將此公式填充入P列所有單元格,填充完成后可以所有單元格的內容都是一樣的,這是因為公式還沒有發生作用,只需要將此文件保存一下即可。之后將O列和P列的值復制到另一個工作表中設置其格式即可。

圖1
使用此方法將此雖然操作稍嫌復雜,但沒有太難的內容,都是一些基本的操作,所以適合所有人使用。若想直接將考場號和考場保密號提取到另一個工作表中的話,可以直接在新表中建立一個考場號列,再在考場保密號列使用以下公式即可:
=RIGHT(VLOOKUP("考場號:"&B3,sheet1!$A:$H,4,0),8)
其中B3表示考場號列為E列,sheet1代表考場簽到單所在的工作表,可根據實際情況進行相應修改。
以上三種方法就是筆者就電大考試的其中一個環節針對所遇到的問題的解決辦法,通過以上三種方法的研究和實現,筆者深深覺得,Excel中還有很多我們沒有掌握的功能,這些功能很有可能對于提高我們的工作效率、減輕工作強度有很大的幫助。因此整理出來,供各位兄弟電大參考。希望也可以給其他人帶來一些啟示。
[1]伊利奇,王保眾.透視ExcelVBA應用與開發.北京:人民郵電出版社,2008年.
[2]苑旭,董民輝,楊洪振等.使用VisualC#.NET開發Windows應用.北京:紅旗出版社,2005年.
[3]李政等.Excel高級應用案例教程.北京:清華大學出版社,2010年.