當前位置:首頁 » 網路資訊 » 怎樣把工資條恢復成工資表數據
擴展閱讀
視頻中的圖標可以刪除不 2025-07-14 10:42:38
空u盤怎樣備份電腦系統 2025-07-14 10:42:37

怎樣把工資條恢復成工資表數據

發布時間: 2022-12-11 03:44:30

❶ 怎麼樣把工資表轉變成工資條 ,主要是公司的員工很多,不可能一個一個去復制,謝謝了

Excel具有強大的數據處理和列印輸出功能,並且易學易用,是廣大用戶喜歡使用的電子表格處理軟體。現在一些單位的財會人員喜歡用Excel列印本單位的職工工資總表與工資條,但在Excel中要將工資總表手工地轉換為工資條則是一件比較煩瑣的事。本人從網上收集N種方法,供有這個需要的朋友們參考。其中有的本人經過了實際試驗,有的還沒有。

一、重新排序法

在Excel2000做成的工資表,只有第一個人有工資條的條頭(如編號、姓名、崗位工資,年限工資……),想輸出成工資條的形式。怎麼做?
解決方法:
(1)、假設原工資表為「表1」,先復制「表1」到某新空白表中,命名為「表2」,刪去「表2」中的多餘行,使工資條頭位於第一行,職工工資數據依次緊排在條頭之後。:
(2)、在「表2」工資數據的後一列H中,增加「標注」欄,依次向下填充入1,2,3…等步長為1的序列數。
(3)、選中「表2」工資條頭下(工資條頭不選)第2至最後一行,右鍵:插入,表2中將出現許多新增空行,將條頭數據填入這些新增空行中(方法:選中A1:G1,右鍵「復制」,然後選中所有新增空行,右鍵「粘貼」即可,也可用拖拽填充法)。然後在其「標注」欄中依次填上1.5,2.5,3.5…。等步長為1的序列數。操作結果示意如下:
(4)、再次選中「表2」第2行至最後一行,點擊菜單:數據-排序-按「標注」列(遞增)排序,點擊確定。再選中H「標注」列,右鍵:「隱藏」或「刪除」,這樣,工資條即基本製作完畢。
(5)、製作完成的工資條裁開後即可分發給同事了。您如果覺得此表格過於擁擠,還可用類似的方法在每個人之間插入空行。

二、宏命令法

在Excel中新建一個文件,將其命名為「工資表與工資條」,在工作表「sheet1」中輸入並編輯好本單位職工工資總表(如表1所示)後,點擊「工具」菜單→「宏」→「宏…」→輸入宏名「生成工資條」→創建,輸入如下的宏的各行文本,輸入完成後保存該宏。將工作表「sheet1」復制為另一個工作表「sheet2」中,使「sheet2」成為當前工作表,執行剛才創建的宏,即可很快將表1所示的工資表轉換為表2所示的工資條。
宏的內容如下:
Sub 生成工資條()
Cells.Select
'選擇整個表去掉表格線
Range("F1").Activate
Selection.Borders(xlDiagonalDown).Line
Style = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Rows("2:2").Select
'選擇第2行
Selection.Insert Shift:=xlDown
'在第2行前插入一行,保持第2行
為選中狀態
num=150
'總人數×3,如工資表中有100人則
為100×3即num=300
col=14
'工資表的欄數,如工資表有17欄則
'col=17
num1 = 4
Do While num1 <= num
'循環插入空行
Range(Cells(num1, 1), Cells(num1, col)).Select
'選中第num1行的第1列到第col列
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
num1 = num1 + 3
Loop
Range(Cells(1, 1), Cells(1, col)).Select
Application.CutCopyMode = False
'剪切復制模式無效
Selection.Copy
'復制選擇區域
Range("A2").Select
'選擇A2單元格
ActiveSheet.Paste
'從A2單元格起粘貼內容
num2 = 5
Do While num2 <= num
'循環插入標題行
Range(Cells(1, 1), Cells(1, col)).Select
Application.CutCopyMode = False
Selection.Copy
Cells(num2, 1).Select
ActiveSheet.Paste
num2 = num2 + 3
Loop
Range(Cells(2, 1), Cells(3, col)).Select
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle
= xlNone
'定義表格邊框線、內線樣式
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlDash
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlDash
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Copy
Range(Cells(5, 1), Cells(6, col)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'接上行刪除上行尾的連字元
_,復製表格線樣式
num3 = 8
Do While num3 <= num
'循環復製表格線樣式
Range(Cells(num3, 1), Cells(num3 + 1, col))
.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
num3 = num3 + 3
Loop
Rows("1:1").Select
'刪除多餘的一行
Selection.Delete
End Sub
以後每月要列印工資表與工資條時,只需將「工資表與工資條」文件打開,修改好工作表「sheet1」中的當月的工資總表數據後將其復制為工作表「sheet2」,並使「sheet2」成為當前工作表,執行宏「生成工資條」即可。

三、宏命令法(2)

在日常應用中,我們經常遇到這樣的操作,每隔相等的幾行,要重復做相同的事情。比如做工資條要列印時,每條記錄前插入一個標題列;每隔N行的行高,統一調整為X高等。用常規的操作,如果數據少的話還可以承受,但數據量一大,就變成一件苦差事了。
下面這個宏,能夠按指定的選擇來選擇等差行,選選擇N至N+M行,然後再運行此宏,就可以選擇從N行開始,每隔M行至到數據結束的行了,代碼如下:
Sub SelectRange()
'按選擇區域給定參數選擇等差行
Dim i As Integer, XRan As Range
If Selection.Areas.Count > 1 Then
MsgBox "選擇區域應為連續區域!", vbExclamation, "錯誤"
ElseIf Selection.Row > ActiveSheet.UsedRange.Rows.Count Then
MsgBox "選擇區域應在使用區域內!", vbExclamation, "錯誤"
Else
Set XRan = Rows(Selection.Row)
For i = Selection.Row + Selection.Rows.Count To _
ActiveSheet.UsedRange.Rows.Count Step Selection.Rows.Count
Set XRan = Union(XRan, Rows(i))
Next
XRan.Select
End If

四、宏命令法(3)

Attribute VB_Name = "模塊1"
Sub 生成工資條()
Cells.Select
'選擇整個表去掉表格線
Range("F1").Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Rows("2:2").Select
'選擇第2行
Selection.Insert Shift:=xlDown
'在第2行前插入一行,保持第2行為選中狀態
num = ((ActiveSheet.UsedRange.Rows.Count) - 2) * 3
'這個數字是工資表中總人數乘以3,例如工資表中有20人,就是num=60
col = ActiveSheet.UsedRange.Columns.Count
'這個數字是工資表中的列數,例如工資表中有20列,就是col=20
num1 = 4
Do While num1 <= num
'循環插入空行
Range(Cells(num1, 1), Cells(num1, col)).Select
'選中第num1行的第1列到第col列
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
num1 = num1 + 3
Loop
Range(Cells(1, 1), Cells(1, col)).Select
Application.CutCopyMode = False
'剪切復制模式無效
Selection.Copy
'復制選擇區域
Range("A2").Select
'選擇A2單元格
ActiveSheet.Paste
'從A2單元格起粘貼內容
num2 = 5
Do While num2 <= num
'循環插入標題行
Range(Cells(1, 1), Cells(1, col)).Select
Application.CutCopyMode = False
Selection.Copy
Cells(num2, 1).Select
ActiveSheet.Paste
num2 = num2 + 3
Loop
Range(Cells(2, 1), Cells(3, col)).Select
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
'定義表格邊框線、內線樣式
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlDash
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlDash
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Copy
Range(Cells(5, 1), Cells(6, col)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'接上行刪除上行尾的連字元_,復製表格線樣式
num3 = 8
Do While num3 <= num
'循環復製表格線樣式
Range(Cells(num3, 1), Cells(num3 + 1, col)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
num3 = num3 + 3
Loop
Rows("1:1").Select
'刪除多餘的一行
Selection.Delete
End Sub

❷ 怎樣把工資表變成工資條最簡單

此處假定學生成績保存在Sheet1工作表的A1至M64單元格區域中,其中第1行為標題,第2行為學科名稱。 (+1 第三行起)1.切換到Sheet2工作表中,選中A1單元格,輸入公式:=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,sheet1!A$1,INDEX(sheet1!$A:$M,INT(((ROW()+4)/3)+1),COLUMN())))。
=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,Sheet1!A$1,INDEX(Sheet1!$A:$M,INT(((ROW()+4)/3)),COLUMN())))
完善版
=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,Sheet1!A$1,IF(ISBLANK(INDEX(Sheet1!$A:$M,INT(((ROW()+4)/3)),COLUMN())),"",INDEX(Sheet1!$A:$M,INT(((ROW()+4)/3)),COLUMN()))))(m列為右端的邊界)2.再次選中A1單元格,用「填充柄」將上述公式復制到B1至M1單元格中;然後,再同時選中A1至M1單元格區域,用「填充柄」將上述公式復制到A2至M185單元格中。 至此,成績條基本成型,下面簡單修飾一下。 3.調整好行高和列寬後,同時選中A1至M2單元格區域(第1位學生的成績條區域),按「格式」工具欄「邊框」右側的下拉按鈕,在隨後出現的邊框列表中,選中「所有框線」選項,為選中的區域添加邊框(如果不需要邊框,可以不進行此步及下面的操作)。 4.同時選中A1至M3單元格區域,點擊「常用」工具欄上的「格式刷」按鈕,然後按住滑鼠左鍵,自A4拖拉至M186單元格區域,為所有的成績條添加邊框。 按「列印」按鈕,即可將成績條列印出來。
自己寫的成績條 工資條和它差不多吧 希望對你有用

❸ 如何將工資條轉為工資表

用Excel列印工資條,歸根結底就是讓Excel製造的工資表格中,一行工資詳目數據,一行員工的記載。假如在每一個員工數據的上面插進一行工資詳目數據顯然我們的請求也就完成了,當然純手工的一行一行插入顯然是個「不可能完成的義務」,這里須要有點小技能。

這上面有詳細講解步驟,你可以看一下http://www.360doc.com/content/10/1129/15/1189724_73442473.shtml

❹ 用EXCEL表做的工資表,有沒有巧妙的方法轉成工資條

1
用EXECL的函數
我們知道工資條有兩行,第一行表示項目(也就圖1中的標題行),第二行表示各項明細,但是實際上,
為了裁剪方便,兩個工資條之間有一空行,所以工資條中就有第一行為標題,第二行為明細,第三行為空白,也就是說這一行的行號除3餘數來決定每一行的內容。
我們新建一個工作表,這里要用到幾個函數:IF、MOD、INT、INDEX,前幾個函數比較好理解,也許你用過,介紹一個INDEX,它返回表格或區域中的數值或對數值的引用。它有兩種形式:數組和引用。數組形式通常返回數值或數值數組;引用形式通常返回引用。我們這里用到引用,所以介紹人一下其函數參數INDEX(reference,row_num,column_num,area_num),Reference為對一個或多個單元格區域的引用。我們這里為工資匯總表
,Row_num為引用中某行的行序號,函數從該行返回一個引用,Column_num為引用中某列的列序號,函數從該列返回一個引用,需注意的是Row_num、column_num

area_num
必須指向
reference
中的單元格;否則,函數
INDEX
返回錯誤值
#REF!。
由於工資條的第一、三行(這里是指行號被3除後的余數)引用是不變的,而第二行的值要發生變化,這樣才能打出每一個人的工資條,仔細觀察,你會發現工資條第2行對應於工資匯總第2行,工資條第5行對應於工資匯總第3行,工資條第8行對應於工資匯總第4行,可以通過現在行號來得到引用行號int((row()+4)/3)
根據以上分析,可以在工資條工作表的A1中輸入下列公式=IF(MOD(ROW(),3)=0,"
",IF(MOD(ROW(),3)=1,工資匯總!$A$1,INDEX(工資匯總!$A:$L,INT((ROW()+4)/3),COLUMN()))),注意這里對表格單元格的引用是絕對引用,選中A1向下拉出第一列,向右拉出第一行,在向右拉出的第一行上,必須更改「工資匯總!$A$1」的引用,分別改成與所在行對應的列數,比如C列改成工資匯總!$C$1;這里如果你想不讓某一欄數據顯示,只要設置不出現這一列的列標,然後再分別向下拉出每一列的數據。再設置邊框格式,就得到如圖2所示的工資條。
在EXECL中我們還可以建立宏來做這樣的事情,也可以使用lookup這個函數來實現這個功能。

❺ excel表格如何將工資表變成工資條

其實用Excel列印工資條,歸根結底就是讓Excel製作的工資表格中,一行工資細目數據,一行員工的記錄。如果在每一個員工數據的上面插入一行工資細目數據顯然我們的要求也就完成了,當然純手工的一行一行插入顯然是個「不可能完成的任務」,這里需要有點小技巧。
第一步:在工資細目的右側兩列中,交叉輸入任意數字(主要是為了後面的「空位」空值,所以數字可任意輸),然後選中交叉的四個單元格,雙擊右下角的「填充柄」,使這種格式一直填充至工資表的結束行。第二步填充數據:執行「編輯」→「定位」命令,在打開的「定位」對話框中單擊「定位條件」按鈕,在打開的「定位條件」對話框中,選擇「空值」,然後單擊「確定」按鈕。
廣州越秀會計培訓學校小編提醒你:第三步需要定位空行:執行「插入」→「行」命令,這時便會從第三行開始,每一行的前面插入了一個空行。
第四步:復製表頭的工資細目數據,選中工資表A列的數據區域,執行「編輯」→「定位」命令,在打開的「定位」對話框中單擊「定位條件」按鈕,在打開的「定位條件」對話框中,選擇「空值」,然後單擊「確定」按鈕,這時會選中剛插入的空行,執行「編輯」→「粘貼」命令,這時工資條就算製作完成了。

❻ 如何將excel的工資表轉換為工資條

軟體版本:Office2007

可以利用公式,將Excel中的工資表轉換為工資條,方法如下:

1.將下面的工資表轉換成工資條: