不同的方法,永遠相同格式的工資條。當然製作工資條的方法有很多,比如排序法,函數法,vba 或錄製宏,還有以前的郵件合併法。製作的武器庫各種槍炮齊全,我們仍然需要努力學習,常學常新。
今天請大家看看工資條的作法。如下表格展現在大家的面前,工資表的原始數據結構。
這是一份標準的工資表格式,需要做成工資條通知到每一個人。但是如果一個一個的複製顯得非常滿意效率和速度,加上準確性也不大好。
我們給大家看看第一種方式,工資條的製作。排序法如下:
但是這個方法不能隨數據變化自動更新,也就是說一旦生成了,如果數據有變數,就需要重新更新一份啦!這也是這種方法美中不足的一點。
第二種製作方式,就是我們常說的公式法來製作。
建立2個工作表,分別是工資表和工資條,如下圖所示:
在新建工資條表格中,然後在A1單元格輸入公式,右拉下拉和向下拉即可:
=CHOOSE(MOD(ROW(1:1),3)+1,"",工資表!$A$1:$F$1,OFFSET(工資表!A$1,ROW(1:1)/3+1,))
因為公式稍微有點複雜,涉及到甘薯的嵌套和運算邏輯,但是我們可以大致了解一下運算的方式。
首先,使用MOD(ROW(1:1),3)+1,得到1 2 3 1 2 3……這樣循環的序列號。然後使用CHOOSE函數,以此為索引值,依次返回空文本""(空白行)、工資表!$A$1:$F$1(標題)和OFFSET(工資表!$A$1:$F$1,ROW(1:1)/3+1,)的計算結果。
其中OFFSET函數部分的作用是,以第一行為基點,公式每下拉三行,引用的行數向下偏移一行。
用公式,雖然複雜,但寫一次可以把公式複製出來生成一個只有公式的工作表,以後每個月工資算好,打開那個工作表,更改一下數據源就行。而且工資數據有改動的時候,只要複製改動的編號,就可以列印更改的那幾項。
是不是看到這裡還是感覺公式其實也是挺複雜的呀,有沒有在一瞬間就可以批量生成工資條的呢?
方法也有,就是我們常說的VBA方式,用代碼一鍵來完成工資條的製作。
我們先看動畫是如何去實現的啦!
右鍵單擊工作表標籤→查看代碼,在代碼窗口寫上以下代碼:
Sub 生成工資條()
Dim i As Integer, iLastRow As Integer
Application.ScreenUpdating = False
iLastRow = Range("A1").CurrentRegion.Rows.Count
For i = iLastRow To 3 Step -1
Range("A" & i).Resize(2, 1).EntireRow.Insert
Range("A" & i + 1).Resize(1, 8).Value = Range("A1").Resize(1, 8).Value
Next i
Application.ScreenUpdating = True
End Sub
點擊執行即可生成工資條,這個是一鍵操作即可。
代碼的意思是,先獲取最大行號,從最下面循環到第三行的位置,每循環一次插入兩個空行,循環的步數為1步,在插入的第二個空行填上標題。
以上三種工資條的製作方式你GET到幾種?
長按二維碼,識別關注
請把「Excel教案」推薦給你的朋友和同事
讓我們每天一起成長,成為更好的自己。