Giúp hàm tìm kiếm từ sheet này đến sheet khac.

  • Thread starter Thread starter vu_ctn
  • Ngày gửi Ngày gửi
Liên hệ QC

vu_ctn

Thành viên chính thức
Tham gia
3/6/10
Bài viết
70
Được thích
2
Mình đang gặp 1 vướng mắc về hàm tìm kiếm, mong các ACE cao thủ chỉ giúp hoặc đưa ra phương hướng giải quyết giumg mình.
* Côgn ty của mình là côgn ty Bảo vệ , nên mỗi nhân viên thường làm việc ở các địa điểm khác nhau.
Mỗi địa điểm mình lạp bản chấm công cho chủ địa điểm đó chấm côgn. và 1 địa điểm có 1 bảng lương riêng. Cuối tháng mình phải cộng lương thực lãnh của nhân viên ở từng tụ điểm lại với nhau ra tổng thực lãnh trừ BHXH, trừ lương ứng.... rồi mới phát lại cho nhân viên. Cách làm như vậy rất tốn thời gian và khả năng sai xót rất cao ( mỗi nhân viên làm từ 10 ->15 tụ điểm)
Mình rất mong ACE cao thủ chỉ mình cách giải quyết nhanh và chính xác. Thank các Bạn trước.
 

File đính kèm

Mình đang gặp 1 vướng mắc về hàm tìm kiếm, mong các ACE cao thủ chỉ giúp hoặc đưa ra phương hướng giải quyết giumg mình.
* Côgn ty của mình là côgn ty Bảo vệ , nên mỗi nhân viên thường làm việc ở các địa điểm khác nhau.
Mỗi địa điểm mình lạp bản chấm công cho chủ địa điểm đó chấm côgn. và 1 địa điểm có 1 bảng lương riêng. Cuối tháng mình phải cộng lương thực lãnh của nhân viên ở từng tụ điểm lại với nhau ra tổng thực lãnh trừ BHXH, trừ lương ứng.... rồi mới phát lại cho nhân viên. Cách làm như vậy rất tốn thời gian và khả năng sai xót rất cao ( mỗi nhân viên làm từ 10 ->15 tụ điểm)
Mình rất mong ACE cao thủ chỉ mình cách giải quyết nhanh và chính xác. Thank các Bạn trước.
Đây là cách "củ chuối" nhất giúp bạn đỡ được một xíu việc dò thủ công:
Lập các công thức cho sheet Tổng hợp:
E7=SUMIF('Biada B'!B:B,B7,'Biada B'!G:G)
F7=SUMIF('Nhà hàng G'!B:B,B7,'Nhà hàng G'!G:G)
G7=SUMIF('Quán Cafe A'!B:B,B7,'Quán Cafe A'!H:H)
Sau đó copy công thức ở hàng 7 cho các hàng còn lại. Cuối cùng chọn Tools\Options, chọn tab View và bỏ chọn mục Zero values để ẩn các số 0 trong sheet.
Lưu ý là tên nhân viên không được trùng lặp trên mỗi sheet, nếu có 2 nhân viên có cùng họ tên thì chắc là bạn phải thêm cột Mã nhân viên cho chắc. Thêm nữa, cấu trúc các sheet thành phần phải giống nhau để công thức được thống nhất (trong file, có sheet có cột Ứng, có sheet lại không có cột này)

**~** Muốn có cách giải đỡ "củ chuối" hơn có lẽ phải nhờ đến VBA can thiệp thôi bạn ạ.
 

File đính kèm

Upvote 0
Thank bạn.! đó cũng là cách giải quyết, đơn giản nhưng hiệu quả. Nếu có thể dùng VBA thì càng tốt. Các ACE cao thủ có thể giúp mình 1 vài ý kiến nữa đc kg?
 
Upvote 0
Bạn xem VBA làm điều đó như thế nào

PHP:
Option Explicit
Sub TongHop()
 Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
 Dim eRw As Long, Trg As Byte, Dem As Byte
   
 Sheets("THop").Select
 eRw = [B65500].End(xlUp).Row:            Trg = Worksheets.Count - 2
 [f5].Resize(eRw, Trg).ClearContents
 ReDim MCol(1 To Trg) As Byte
 For Each Sh In Worksheets
   If Sh.Name <> "THop" And Sh.Name <> "Sheet3" Then
      With [M5].End(xlToLeft).Offset(, 1)
         .Value = Sh.Name:    Dem = Dem + 1
         MCol(Dem) = .Column
      End With
   End If
 Next Sh
 For Each Cls In Range([B7], [B9999].End(xlUp))
   Dem = 0
   For Each Sh In Worksheets
      If Sh.Name <> "THop" And Sh.Name <> "Sheet3" Then
         Dem = Dem + 1
         Set Rng = Sh.Range(Sh.[B4], Sh.[B65500].End(xlUp))
         Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
         
         If Not sRng Is Nothing Then
             Cells(Cls.Row, MCol(Dem)).Value = sRng.Offset(, 7).Value
         End If
         
      End If
   Next Sh
 Next Cls
End Sub
 

File đính kèm

Upvote 0
Thank bạn.! đó cũng là cách giải quyết, đơn giản nhưng hiệu quả. Nếu có thể dùng VBA thì càng tốt. Các ACE cao thủ có thể giúp mình 1 vài ý kiến nữa đc kg?
Bài này có liên quan đến các sheet nên mình đề nghị
1- Đặt tên các sheet nên không dấu tiếng Việt, không khoảng trắng miễn là gơi nhớ cho mình là được rồi
2- Ở hàng 6 sheet Tonghop tên các địa điểm phải đúng với tên các Sheet
3- Sheet Tonghop nằm sau các sheet địa điểm
4- Cấu trúc các sheet nên giống nhau hoàn toàn
Đây là code tham khảo:
Mã:
Public Sub loc()
    Dim Sh As Worksheet, Vung, VungTh, Cll As Range, I As Integer, J As Integer, Diadiem As Range
    Set VungTh = Range([b7], [b5000].End(xlUp)): Set wf = Application.WorksheetFunction
    Set Diadiem = Range("e6:g6")
     Range([b7], [b500].End(xlUp)).Offset(, 3).Resize(, 3).ClearContents
        For Each Cll In VungTh
            For Each Sh In Worksheets
                Set Vung = Sh.Range(Sh.[b5], Sh.[b500].End(xlUp))
                If Sh.Name = "Tonghop" Then Exit For
                    If wf.CountIf(Vung, Cll) > 0 Then
                        I = wf.Match(Sh.Name, Diadiem, 0)
                        J = wf.Match(Cll, Vung, 0)
                        Cll.Offset(0, I + 2) = Vung(J).Offset(0, 5)
                    End If
            Next
        Next
End Sub
 

File đính kèm

Upvote 0
Bạn SA_DQ ơi.! mình đã down file của bạn về rồi.
1. nhưng khi mình thêm 1 sheet mới có cấu trúc y như các sheet có sẵn khi cho chạy macrro thì đoạn code báo lỗi tại dòng : MCol(Dem) = .Column
các dữ liệu kg được copy, tên các địa điểm chạy lọan xạ.
2. Bạn chỉ mình cách đặt mã NV nhe, mình muốn mã NV lấy theo 1 quy tắc nhất định kg cần phải đặt.
vd : Trần Văn B thì mã NV là : TVB ; Chung Ngọc nhớ mã NV là : CNN( lấy các chữ cái của họ và tên).
Thank! bạn.
 
Upvote 0
Bạn SA_DQ ơi.! mình đã down file của bạn về rồi.
1. nhưng khi mình thêm 1 sheet mới có cấu trúc y như các sheet có sẵn khi cho chạy macrro thì đoạn code báo lỗi tại dòng : MCol(Dem) = .Column
các dữ liệu kg được copy, tên các địa điểm chạy lọan xạ.
2. Bạn chỉ mình cách đặt mã NV nhe, mình muốn mã NV lấy theo 1 quy tắc nhất định kg cần phải đặt.
vd : Trần Văn B thì mã NV là : TVB ; Chung Ngọc nhớ mã NV là : CNN( lấy các chữ cái của họ và tên).
Thank! bạn.
Mã NV theo kiểu của Bạn thì Trần Văn Bình, Trịnh Văn Bé, Tôn Văn Bánh ... đều là TVB, sau này dùng Mã NV để dò tìm thì "chết"
 
Upvote 0
Bạn SA_DQ ơi.!
1. nhưng khi mình thêm 1 sheet mới có cấu trúc y như các sheet có sẵn khi cho chạy macrro thì đoạn code báo lỗi tại dòng : MCol(Dem) = .Column
các dữ liệu kg được copy, tên các địa điểm chạy lọan xạ.
2. Bạn chỉ mình cách đặt mã NV nhe, mình muốn mã NV lấy theo 1 quy tắc nhất định kg cần phải đặt.
vd : Trần Văn B thì mã NV là : TVB ; Chung Ngọc nhớ mã NV là : CNN( lấy các chữ cái của họ và tên).
Thank! bạn.

(1) Hiện tại tại trang 'THop', cột thành tiền đang là 'M'; như vậy ta có thể thêm 1 số trang cho đến khi chưa quá Column("M") - Columns("F")
Mình vừa làm thế này & OK (Bạn thử xem sao) Vô menu Insert & thêm trang tính mới (Nó có tên gi kệ nó, miễn không là "THop' hay 'Sheet3'; Chép 1 trong 3 trang tính số liệu qua đo & sửa lại 1 số con số về số lượng;
Chạy macro để có kết quả & báo xem OK hay chưa?

(2) Bạn muốn mã dễ gợi nhớ thì ta kéo chuỗi dài thành 4 kí tự vậy;

Như GPE0,GPE1,. . . . , GPE9, GPEA,. . . . . Có thể 36 hay 78 cái mã GPE luôn!

(Nếu nơi bạn có hơn 150 nhân viên thì đưa file lên, mình sẽ làm giúp; còn dưới nớ thì chê!)
 
Upvote 0
Web KT

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

Back
Top Bottom