Tính tổng ngày công theo theo nhiều điều kiện bằng VBA

Liên hệ QC

vulunktheky

Thành viên thường trực
Tham gia
2/3/18
Bài viết
268
Được thích
84
Giới tính
Nam
Chào anh chị và các bạn!
Mình có 1 file giờ công lấy từ hệ thống ERP (Sheet data) dùng để lấy số ngày công làm việc của từng nhân viên theo rất nhiều điều kiện (file đính kèm).
Vì dữ liệu rất lớn nên sử dụng công thức gây ra máy không chạy nổi. Mong các anh chị và các bạn giúp đỡ. Mình cảm ơn
P/S: Tất cả đều dựa theo mã số thẻ, ngày công không vượt quá 6 ngày.
 

File đính kèm

  • ngay cong _GPE.xlsb
    321.5 KB · Đọc: 7
  • YÊU CẦU.docx
    17 KB · Đọc: 12
Lần chỉnh sửa cuối:
Chào anh chị và các bạn!
Mình có 1 file giờ công lấy từ hệ thống ERP (Sheet data) dùng để lấy số ngày công làm việc của từng nhân viên theo rất nhiều điều kiện (file đính kèm).
Vì dữ liệu rất lớn nên sử dụng công thức gây ra máy không chạy nổi. Mong các anh chị và các bạn giúp đỡ. Mình cảm ơn
P/S: Tất cả đều dựa theo mã số thẻ, ngày công không vượt quá 6 ngày.
Bạn giải thích chỗ này cái mình không hiểu lắm.2 Điều kiện này lấy điều kiện nào vậy.
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H)
 
Upvote 0
Bạn giải thích chỗ này cái mình không hiểu lắm.2 Điều kiện này lấy điều kiện nào vậy.
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H)
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8 -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H) -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8 và thêm điều kiện là 1 trong các loại phép trên
 
Upvote 0
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8 -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H) -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8 và thêm điều kiện là 1 trong các loại phép trên
Nếu vậy thì cần gì phải xét điều kiện sau nữa nhỉ.
 
Upvote 0
E gửi file mẫu với công thức mà e tính từ trước đến này, anh xem thế thấy như thế nào, e phân tích những điều kiện từ công thức ra á anh.
 

File đính kèm

  • ngay cong _GPE.xlsb
    335.1 KB · Đọc: 4
Upvote 0

File đính kèm

  • ngay cong _GPE.xlsb
    326.4 KB · Đọc: 8
Upvote 0
Bạn xem đúng không nhé.Mình làm 3 câu đầu thôi.
Hi Anh, a có thể comment vào code được không ak,
Anh có thể dành chút thời gian hỗ trợ e 2 câu còn lại được không, vì cách tính cũ tốn quá nhiều thời gian, vagf e cung chưa hiểu rõ lắm về VBA, mong anh giúp đỡ.
 
Lần chỉnh sửa cuối:
Upvote 0
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8 -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8
  • Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H) -> có nghĩa là điều kiện giờ công phải nằm trong khoảng từ 6 đến nhỏ 8 và thêm điều kiện là 1 trong các loại phép trên
Làm rõ từng "Câu" nha bạn:
Câu 1: Ngày làm việc bình thường:
  1. Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8
  2. Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H)
    • <==Nghỉ nguyên ngày bằng các loại phép thì làm gì có giờ công >=6 và <=8, cho nên không cần xét giờ công >=6 và <=8!? được không?
  3. Bằng 0.5 ngày nếu: giờ công(Cột E) >=2.5, <6
  4. Bằng 0.5 ngày nếu: giờ công(Cột E)>=2.5, <6, loại phép: RP,TN,PN,PB (Cột H)
    • <==Nghỉ vài giờ trong ngày bằng các loại phép có thể có xảy ra, tức trong cột E sẽ có phát sinh số giờ trong khoảng >=2.5 và <6, tuy nhiên suy ra sẽ bị trùng lặp với điều kiện 3, vậy không xét các loại phép, được không!?
  5. Bằng 1 ngày nếu: giờ công(Cột E) >=6, <8, giới tính: Female (Cột J)
    • <==Điều kiện 1 (bất kể Nam hay Nữ) đã tính rồi, nếu tính thêm sẽ dư, không chính xác!?.
  6. Bằng 0.5 ngày nếu: giờ công(Cột E) >=2.5, <6, giới tính: Female (Cột J)
    • <==Điều kiện 3 (bất kể Nam hay Nữ) đã tính rồi, nếu tính thêm sẽ dư, không chính xác!?.
Bạn có thể giải thích những thắc mắc trên không?

Thân
 
Upvote 0
Làm rõ từng "Câu" nha bạn:
Câu 1: Ngày làm việc bình thường:
  1. Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8
  2. Bằng 1 ngày nếu: giờ công(Cột E) >=6 và <=8, loại phép: TN,RP,PN,PB (Cột H)
    • <==Nghỉ nguyên ngày bằng các loại phép thì làm gì có giờ công >=6 và <=8, cho nên không cần xét giờ công >=6 và <=8!? được không?
  3. Bằng 0.5 ngày nếu: giờ công(Cột E) >=2.5, <6
  4. Bằng 0.5 ngày nếu: giờ công(Cột E)>=2.5, <6, loại phép: RP,TN,PN,PB (Cột H)
    • <==Nghỉ vài giờ trong ngày bằng các loại phép có thể có xảy ra, tức trong cột E sẽ có phát sinh số giờ trong khoảng >=2.5 và <6, tuy nhiên suy ra sẽ bị trùng lặp với điều kiện 3, vậy không xét các loại phép, được không!?
  5. Bằng 1 ngày nếu: giờ công(Cột E) >=6, <8, giới tính: Female (Cột J)
    • <==Điều kiện 1 (bất kể Nam hay Nữ) đã tính rồi, nếu tính thêm sẽ dư, không chính xác!?.
  6. Bằng 0.5 ngày nếu: giờ công(Cột E) >=2.5, <6, giới tính: Female (Cột J)
    • <==Điều kiện 3 (bất kể Nam hay Nữ) đã tính rồi, nếu tính thêm sẽ dư, không chính xác!?.
Bạn có thể giải thích những thắc mắc trên không?

Thân
tất cả những yêu cầu là mình suy ra từ công thức trong file á bạn, do cấp trên đã thiêt lập nen mình không rõ như thế nào nữa.
cảm ơn bạn
 

File đính kèm

  • ngay cong _GPE (2).xlsb
    335.1 KB · Đọc: 3
Upvote 0
tất cả những yêu cầu là mình suy ra từ công thức trong file á bạn, do cấp trên đã thiêt lập nen mình không rõ như thế nào nữa.
cảm ơn bạn
Ý tôi không phải cật vấn vặn vẹo bạn để làm chi! mà bạn phải hiểu rằng: chỉ khi có yêu cầu chính xác và đâu đó rõ ràng, thì việc lập lệnh hay viết code mới chính xác và không phải chỉnh tới chỉnh lui sau này.

Do vậy, bạn nên thật hiểu rõ các quy định chấm công của công ty bạn rồi đưa lên diễn đàn, chứ không nên dựa vào công thức để quy ngược ra lại yêu cầu.

Làm được vậy, thì không mất công và thời gian của cả hai bên: bạn và người giải bài.

Vậy nha!
Thân
 
Upvote 0
Ý tôi không phải cật vấn vặn vẹo bạn để làm chi! mà bạn phải hiểu rằng: chỉ khi có yêu cầu chính xác và đâu đó rõ ràng, thì việc lập lệnh hay viết code mới chính xác và không phải chỉnh tới chỉnh lui sau này.

Do vậy, bạn nên thật hiểu rõ các quy định chấm công của công ty bạn rồi đưa lên diễn đàn, chứ không nên dựa vào công thức để quy ngược ra lại yêu cầu.

Làm được vậy, thì không mất công và thời gian của cả hai bên: bạn và người giải bài.

Vậy nha!
Thân
cảm ơn bạn, nếu có chỗ nào không hợp lý bạn có thể chỉnh sửa giúp mình, bạn có thể hỗ trợ mình ở tag #8 theo như bạn nói là có thể trùng hoăc dư thừa điều kiện xem kêt quả thế nào được không, vì tất cả những điều kiện mình mô tả đã thảo luận với sếp là chính xác, mình cảm ơn.
 
Upvote 0
Web KT
Back
Top Bottom