Cộng số tiền ở nhiều sheet khác nhau sao cho trùng với tên!

Liên hệ QC

kaiser_no1

Thành viên mới
Tham gia
17/4/09
Bài viết
1
Được thích
0
Chào cả nhà!!

Have a nice day!

Tôi có một sheet tiền lương ở các tháng khác nhau (xem vi dụ) bây giở tôi muốn cộng số tiền ở các sheet vào một sheet tổng hợp sao cho chính xác số tiền của từng người đã nhận trong năm. Nếu bây giờ mà cộng từng người thì lâu quá. Mà cty thì có đến hàng trăm nhân viên cộng vậy thì đến bao giờ.

Cả nhà giúp tôi xem có công thức nào làm cho nhanh và chính xác ko?

Thanks cả nhà.
 

File đính kèm

  • vidu luong.xls
    97.5 KB · Đọc: 306
Chào cả nhà!!

Have a nice day!

Tôi có một sheet tiền lương ở các tháng khác nhau (xem vi dụ) bây giở tôi muốn cộng số tiền ở các sheet vào một sheet tổng hợp sao cho chính xác số tiền của từng người đã nhận trong năm. Nếu bây giờ mà cộng từng người thì lâu quá. Mà cty thì có đến hàng trăm nhân viên cộng vậy thì đến bao giờ.

Cả nhà giúp tôi xem có công thức nào làm cho nhanh và chính xác ko?

Thanks cả nhà.

Có nhiều cách, tuy nhiên có vài điểm cần lưu ý:
- Cần có mã nhân viên xác định thì tốt nhất
- Với loại bảng kiểu như thế này, nên tổng hợp bằng Pivot
- Với bảng của bạn (điều kiện là không trùng tên nhân viên) dùng tạm cái này cho dễ hiểu:
Bạn đặt công thức này tại Ô U6 của Sheet 12-19, copy & paste: =IF(A6<>"",K6+SUMIF('11-09'!$B$6:$B$100,'12-09'!B6,'11-09'!$K$6:$K$100)+SUMIF('10.09'!$B$6:$B$100,'12-09'!B6,'10.09'!$K$6:$K$100)+SUMIF('09.09'!$B$6:$B$100,'12-09'!B6,'09.09'!$K$6:$K$100)+SUMIF('08.09'!$B$6:$B$100,'12-09'!B6,'08.09'!$K$6:$K$100)+SUMIF('07.09'!$B$6:$B$100,'12-09'!B6,'07.09'!$K$6:$K$100),"")
rồi kéo xuống
 
Fải có mã nhân viên duy nhất , bạn à.

Tuy nhiên mình cũng làm bạn tạm vừa lòng với macro sau:

PHP:
Option Explicit
Sub TongHopLuongCacThang()
 Dim Sh As Worksheet, Clls As Range, Rng As Range, sRng As Range, Thg As Range
 Dim eRw As Long:                            Dim MyColor As Byte, Col As Byte
 
 Sheets("THop").Select:                      MyColor = [A4].Interior.ColorIndex
 If MyColor < 34 Then MyColor = 35
 [B4].CurrentRegion.Offset(, 2).ClearContents
 For Each Sh In Worksheets
   If Sh.Name <> "THop" Then
      Set Thg = [iV4].End(xlToLeft).Offset(, 1)
      Thg.Value = "'" & Sh.Name:             Col = Thg.Column
      Set Rng = Sh.Range(Sh.[B4], Sh.[B65500].End(xlUp))
      For Each Clls In Range([B5], [B5].End(xlDown))
         Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
         If Not sRng Is Nothing Then
            With Cells(65500, Col).End(xlUp).Offset(1)
               .Value = Sh.Cells(sRng.Row, "K").Value
            End With
         End If
      Next Clls
   End If
 Next Sh
 With [A4].Resize(, 15)
   .Font.Bold = True
   .HorizontalAlignment = xlCenter
 End With
 If MyColor > 41 Then MyColor = 34
 [A4].Resize(, 2).Interior.ColorIndex = MyColor + 1
End Sub

Thêm nữa: Trong file có biếu thêm bạn 1 macro để tạo danh sách duy nhất cho trang tổng hợp

Về lâu về dài: Fải tạo mã duy nhất cho nhân viên.

Lúc rỗi bạn hãy đến đây: http://www.giaiphapexcel.com/forum/...ác-bài-tập-về-nhân-sự-từ-đơn-giản-đến-fức-tạp
 

File đính kèm

  • GPE.rar
    28.6 KB · Đọc: 161
Web KT

Bài viết mới nhất

Back
Top Bottom