thangbithu
Thành viên thường trực




- Tham gia
- 13/10/08
- Bài viết
- 387
- Được thích
- 485
- Nghề nghiệp
- Nhân sự
K/g các cao thủ, mình cần hàm viết trong VBA để tính toán, nhờ các bạn giúp:
bài toán xin mô tả như sau:
Là bảng tính giờ công của công nhân, giờ công mỗi công nhân được ghi trên 1 hàng gồm 31 cell (tương ứng với 31 cột mà tiêu đề từng cột là ngày trong tháng (1, 2, 3, ...., 31). Dữ liệu trong từng cell :
- có thể là rỗng,
- có thể là số (số nguyên hoặc số thập phân, ký hiệu số thập phân là dấu ","),
- có thể là chuỗi: gồm 3 loại dữ liệu kết hợp với nhau
+ Số: có cấu tạo giống như phần số nêu trên
+ ký tự : tối đa 2 ký tự, ví dụ: P, T, CO, TS, RO, H1, H2, H3 ...
+ dấu "/".
+ cách kết hợp: 8P; 12,5CO ; 10,5H2 ; 4/4P; 11,5/2,5H3 ; 8P/4X ; 3/4P/1X ; 10,5/0,5X/3H2; 10,5CT/4P/1,5H2 (không có khoảng trắng ở giữa)

Vấn đề đặt ra:
Trong từng cell phải tách được phần số và phần ký tự ra riêng để :
- lấy sum phần số, tuy nhiên có lấy sum hay không còn phụ thuộc vào ký tự đứng sau số đó, ví dụ: nếu lấy sum từ ví dụ trên sẽ như sau (ví dụ số đứng trước chữ CO và P không lấy sum)

- chỉ lấy sum các số đứng trước chữ P, CO (là những chữ mà hàm ở trên không lấy sum) (như ví dụ trên là 12,5CO + 4P + 8P + 4P + 4P = 32,5) ?
- lấy sum các con số chỉ đứng 1 mình, không đi kèm với chữ nào, ví dụ: Sum(4,5 ; 4/4H2; 10/4P/4X) = 18,5 ?
Sau đó cộng tất cả các cell lại để có giờ công trong tháng
Mỗi loại sum là 1 hàm
Xin cảm ơn anh em trước.
bài toán xin mô tả như sau:
Là bảng tính giờ công của công nhân, giờ công mỗi công nhân được ghi trên 1 hàng gồm 31 cell (tương ứng với 31 cột mà tiêu đề từng cột là ngày trong tháng (1, 2, 3, ...., 31). Dữ liệu trong từng cell :
- có thể là rỗng,
- có thể là số (số nguyên hoặc số thập phân, ký hiệu số thập phân là dấu ","),
- có thể là chuỗi: gồm 3 loại dữ liệu kết hợp với nhau
+ Số: có cấu tạo giống như phần số nêu trên
+ ký tự : tối đa 2 ký tự, ví dụ: P, T, CO, TS, RO, H1, H2, H3 ...
+ dấu "/".
+ cách kết hợp: 8P; 12,5CO ; 10,5H2 ; 4/4P; 11,5/2,5H3 ; 8P/4X ; 3/4P/1X ; 10,5/0,5X/3H2; 10,5CT/4P/1,5H2 (không có khoảng trắng ở giữa)

Vấn đề đặt ra:
Trong từng cell phải tách được phần số và phần ký tự ra riêng để :
- lấy sum phần số, tuy nhiên có lấy sum hay không còn phụ thuộc vào ký tự đứng sau số đó, ví dụ: nếu lấy sum từ ví dụ trên sẽ như sau (ví dụ số đứng trước chữ CO và P không lấy sum)

- chỉ lấy sum các số đứng trước chữ P, CO (là những chữ mà hàm ở trên không lấy sum) (như ví dụ trên là 12,5CO + 4P + 8P + 4P + 4P = 32,5) ?
- lấy sum các con số chỉ đứng 1 mình, không đi kèm với chữ nào, ví dụ: Sum(4,5 ; 4/4H2; 10/4P/4X) = 18,5 ?
Sau đó cộng tất cả các cell lại để có giờ công trong tháng
Mỗi loại sum là 1 hàm
Xin cảm ơn anh em trước.
Lần chỉnh sửa cuối: