曾 慧
(遼寧工程職業學院,遼寧 鐵嶺 112008)
Excel 是一套功能強大的電子表格處理軟件,在實際工作當中,它也成為中小型企業在財務管理中不可或缺的一種工具。它既節約成本,又能提高財務工作人員的工作效率并創造一定的價值。它在財務單據、統計表、進銷存管理、工資管理、財務決策中都得到大量的應用[1]。本文介紹Excel 在工資管理方面的應用——制作工資條。通過Excel 制作工資條的方法有很多種,按使用工具來劃分,筆者把它分為“菜單法”“郵件合并法”“函數法”和“VBA 法”。
在實際工作中,很多財務人員用Excel 軟件制作工資條,但有些方法非常復雜,不利于操作[2]。“菜單法”“郵件合并法”這兩種方法適合有一定的Excel 基本和Word 基礎的人群,它不需要高深的Excel 函數基礎或VBA 編程基礎。它們的優點是簡單易學,容易上手,只要通過菜單欄的部分工具就能完成;缺點是擴展性較差,當有人員變動,需要增減工作表的數據時,需要重新制作。下面我們分別來介紹一下這兩種方法。
“菜單法”主要是通過菜單欄的中“數據”—“排序”來實現的[3]。現在我們手里有這樣一張工作表,我們把它命名為工資表(見圖1),我們要把這張工資表制作成如圖2(部分數據) 所示的工資條。

圖1 工資表

圖2 工資條部分數據
首先,我們在工資表“實發工資”列后加一輔助列并命名為“排序標注”,在“排序標注”列第一行輸入1,并使用自動填充功能向下填充等步長為1的序列到最后一行。其次,我們選中從第二行到最后一行所有行,在行標題上右擊選擇“插入”,這樣我就插入了選中行數的空行。選中第一行的數據,復制并粘貼到這些空行中,在“排序標注”列,空行的第一行輸入1.1,并使用自動填充功能向下填充序列(結果如圖3 所示)。最后,光標定位在“排序標注”列任一單元格處,選擇“數據”菜單中的“升序”排序,工資條就制作完畢。當然,如果為了方便裁剪,我們想再加入一條如圖2 所示的空行,可使用相同的方法。如插入多行空行并在第一行空行輸入一個在1 與1.1 之間的數,向下填充序列并重新排序即可。

圖3 排序標注填寫
“郵件合并法”是Word 與Excel 聯合完成制作工資條的,主要使用的是Word 的“郵件合并”功能,Excel 的工資表作為數據源。在Word 中制作一個2 行10 列的表格,并把Excel 中工資表的表頭復制到表格的第一行,第二行的具體數據使用郵件合并功能的“插入合并域”來完成。“郵件合并法”主要使用Word 的郵件合并功能,在這里不詳細介紹了。“郵件合并法”的優點為當表頭比較復雜并且有合并單元格時,它也可以完成工資條的制作[4],而“菜單法”就無法完成了。如果我們想制作完成再發送給各個職工,可以再加上Outlook 軟件,結合起來制作并自動發送員工的工資條,使財務人員從重復及繁瑣的財務工作中解放出來,這就大大提高了工作效率[5]。
“函數法”適合能熟練掌握并應用Excel 函數的人群。Excel 強大的函數功能可以提供數據分析、數據處理等操作,為許多領域的工作提供了十分便捷的數據統計和運算支持[6]。“函數法”的優點是當工資表發生變化時,我們不需要重新處理,或者只要重新自動填充工資條數據即可,不需重新制作,省時省力。它的缺點為函數比較晦澀難懂,一般人不易掌握。使用函數解決問題的關鍵還是思路與創新,同一個問題,可以有多種解決辦法,怎樣用最少的函數解決相同的問題是我們一直在探索的。對于工資條的制作也是一樣,我們可以使用多種“函數法”來完成。
使用VLOOKUP 函數制作工資條同“郵件合并法”一樣,也適用于復雜的雙行表頭。而且相對于其它的函數法,它也是相對簡單的一種。這種方法適合會一些常用的簡單函數的人群
首先,我們在第一列前插入一個輔助列,命名為“序號”,并輸入1 向下以序列填充。然后,復制工資表的表頭到當前工作表的下面,比如我們復制到以A12 開頭的單元格區域,并在“序號”的下面輸入1。 光標定位到B13 單元格輸入公式“=VLOOKUP($A13,$A$1:$K$10,COLUMN(),0)”,結果返回“張昊”,向右填充公式,求出張昊的其它數據。選中A12:K14 單元格區域也就是工資條的前三行,并向下填充,刪除輔助列“序號”,所有人的工資條制作完成。其中,除了VLOOKUP 函數,還用到了COLUMN 函數,該函數的功能為返回引用的列號。
這種制作工資條的方法是以CHOOSE 和OFFSET 兩種函數為主,配合其它函數來完成的。相對VLOOKUP 函數來說,較復雜,它適用于對函數操作有一定經驗的人群。
這種函數法操作較簡單。在另一張新的工作表中,光標定位在A1 單元格,輸入公式“=CHOOSE(MOD(ROW(),3)+1,"",工資表!A$1,OFFSET(工資表!A$1,ROW()/3+1,))”回車確認,返回“姓名”。向右填充直到出現“實發工資”,再選中第一行,再下填充,直到所有人的工資條都出現,操作完成。
CHOOSE 與OFFSET 是EXCEL 當中的查找與引用函數。CHOOSE 函數的功能是根據給定的索引值,從參數串中選出相應值或操作[3]。OFFSET 函數的功能是以指定的引用為參照系,通過給定的偏移量返回新的引用。除了這兩種函數,還使用了ROW返回行號函數,MOD 求余函數。在這里,MOD 函數返回的值加1 作為CHOOSE 函數的第一個參數。
CHOOSE 與OFFSET 函數制作工資條方法的優點是操作簡單,只要一個公式,再填充即可完成。而且無論工資表是增加人員還是減少人員,工資條都會自動增加和減少,不需重新制作,大大提高了工作人員的工作效率。它的缺點是不適用復雜表頭的工作表。
這種制作工資條的思路與CHOOSE 與OFFSET制作工資條的思路是一致的,只不過把CHOOSE 函數換成了條件函數IF。
同樣,在另一張新的工作表中,把光標定位在A1 單元格,輸入公式“=IF(MOD(ROW(),3)=1,工資表!A$1,IF(MOD(ROW(),3)=2,OFFSET(工資表!A$1,ROW()/3+1,0),""))”。其它操作同上一種函數法一致,這里不再贅述。
這種函數法是在第二種函數法的基礎上改進的,是手工與函數相結合完成的。它的思路是工資條的第一行標題行通過復制得到,最后一行空白行通過填充得到,只需使用函數求出第二行數據即可[7]。這樣就大大減化了我們的公式。
復制工資表第一行標題行到一張新的工作表的第一行。光標定位到A2 單元格,輸入公式“=OFFSET(工資表!A$1,(ROW()+1)/3,)”,回車確認后返回值“張昊”,使用同樣的方式向右填充,得到張昊的數據。選中前三行,向下填充,得到所有人的工資條,制作完成。
這種方法適用于會VBA 編程的人群,但由于VBA 編程需要掌握各種代碼及語句,難以掌握和理解,使大家望而卻步[8],所以使用它的人還是少數。VBA 編程法只要輸入代碼,然后執行宏就可以得到我們所需要的工資條。和其它軟件系統相比,它是一種簡單、高效、低成本的開發方法[9]。
假設工資表在Sheet1 工作表,第一行為標題,第二行為字段名。為了不破壞原有數據,我們要把工資條生成在Sheet2 工作表中。首先我們選擇“開發工具”中的“Visual Basic”打開編輯器,在模塊1 中輸入如圖4 所示代碼:

圖4 程序代碼
關閉編輯器,執行宏,我們想要的工資條就會出現在Sheet2 工作表中。
當然,和“函數法”一樣,“VBA 編程法”也是方法各異,這里我們只舉這樣一個簡單的例子。如果對VBA 編程不是很熟悉,我們也可以采用錄制宏的方式來完成[10]。
上述工資條的制作方法針對不同人群各有優缺點,簡單的“菜單法”易上手,但擴展性差。“VBA 編程法”只要程序寫好,效率很高,但對于不懂編程的人,如果工資表格式稍有改動,修改代碼將會很困難。相關工作人員只要根據自己的基礎找到適合的方法,一定會在工作中減少人為失誤,提高工作效率,提供出更加及時、準確的工資信息。