目前有部分企業(yè)、工廠采用現(xiàn)金發(fā)放的方式發(fā)工資,而對于財務(wù)人員來說預(yù)估各種面額的鈔票張數(shù)則成了必不可少的程序,對于大部分不懂VBA和函數(shù)的人員同時也是一個難點。
實事上ET2009的數(shù)組公式可以輕松解決這個問題,只需要幾秒鐘,借用一個數(shù)組公式就可以完成所有人員的所需鈔票數(shù)量?,F(xiàn)具體演示一下需求與完成步驟。
假設(shè)需要計算的面額包括100元、50元、20元、10元、5元、2元、1元(如果需在角與分也用同一個公式,思路上沒有分別),那么在工資存放列(假設(shè)為B列)右邊建立7列做為輔助區(qū),用于存放每種面額的鈔票張數(shù)。
1.在C1:I1區(qū)域分別輸入100、50、20、10、5、2、1;
2.選擇C1:I1區(qū)域,再單擊右鍵,選擇“設(shè)置單元格格式”菜單;
3.在“數(shù)字”選項卡的“分類”中選擇“自定義”;
4.右邊的“類型”框中顯示了“G/通用格式”,將其修改為“G/
圖一 自定義數(shù)字格式
5.在C2單元格錄入以下公式:=IF(COLUMN()=3,INT($B2/C$1),INT(($B2-SUM(OFFSET($B$1,ROWS(A$1:A1),1,1,COLUMNS($B:B)-1)*OFFSET($B$1,,1,1,COLUMNS($B:B)-1)))/C$1))
錄入公式后需要同時按下“Ctrl+Shift+Enter”三鍵結(jié)束,表示按照數(shù)組公式計算,否則無法產(chǎn)生正確結(jié)果。
6.選擇單元格C1,將公式向右填充至I2,再雙擊填充柄,將C2:I2的公式向下填充至末尾。公式的計算結(jié)果見圖二所示:
圖二 利用數(shù)組公式計算鈔票張數(shù)
7.為了驗證計算是否準(zhǔn)確,再在J列建立一個輔助區(qū),用于匯總所有面額與數(shù)量的乘積。在J1輸入“匯總”,在J2輸入以下公式:=SUM($C$1:$I$1*C2:I2)
仍然以“Ctrl+Shift+Enter”三鍵結(jié)束,否則無法產(chǎn)生正確結(jié)果。
8.雙擊J2單元格的填充柄,將公式向下填充到最末單元格。
9.根據(jù)J列的匯總值與B列的工資進(jìn)行比較,可以清晰分辨公式的正確性。見圖三所示:
圖三 驗證公式的準(zhǔn)確性
公式思路解釋:
計算100元面額的鈔票數(shù)量時最簡單,將工資除以100,然后利用INT函數(shù)取整即可,即公式中“INT($B2/C$1)”部分;
而計算其它面值的鈔票張數(shù)時,只需要對剩下的部分工資進(jìn)行計算。而如何確定已經(jīng)計算過的鈔票面額的值是重點。本例中利用“OFFSET($B$1,,1,1,COLUMNS($B:B)-1))”獲取已經(jīng)計算過的鈔票面額,再用“OFFSET($B$1,ROWS(A$1:A1),1,1,COLUMNS($B:B)-1)”獲取已計算過的鈔票對應(yīng)的數(shù)量,兩者乘積并匯總,再總薪資求差即為剩下的待計算金額。
而“兩個區(qū)域乘積并匯總”在ET中有一個專用函數(shù)——MMULT,所以本例公式可以改為“=IF(COLUMN()=3,INT($B2/C$1),INT(($B2-MMULT(OFFSET($B$1,ROWS(A$1:A1),1,1,COLUMNS($B:B)-1)
,TRANSPOSE(OFFSET($B$1,,1,1,COLUMNS($B:B)-1))))/C$1))”
根據(jù)前面的分析,計算100元鈔票的數(shù)量和其它面值的數(shù)量使用了不同的公式。為了讓兩者統(tǒng)一,即僅使用一個公式完成,通過IF函數(shù)將兩段公式結(jié)合即可,使公式在第3列是按前一種方式計算,列號大于3時則按另一種方式計算。
最后補(bǔ)充一點,如果用同類軟件EXCEL解決此問題,可以改用以下普通公式完成:
=IF(COLUMN()=3,INT($B2/C$1),INT(($B2-SUMPRODUCT(B2:$C2*B$1:$C$1))/C$1))