Gộp ngày công theo tính chất ngày công

Liên hệ QC

Trần Khánh Thảo

Thành viên mới
Tham gia
15/2/19
Bài viết
7
Được thích
0
Chào mọi người, em có file mẫu này về việc gom ngày công theo tính chất công.
Ví dụ từ mùng 1 đến mùng 5 là Nghỉ ốm thì sẽ cho kết quả gộp 1~5/?: Nghỉ ốm.
Có cách nào dùng công thức excel để gom không ạ. Hoặc dùng VBA thì sẽ như nào ạ.
Em ưu tiên dùng excel ạ, vì em không khá VBA lắm.
Có gì chưa rõ mọi người góp ý em ạ.
Em cảm ơn mọi người ạ.
 

File đính kèm

  • Gom ngày công-210810.xlsx
    10.1 KB · Đọc: 21
Chào mọi người, em có file mẫu này về việc gom ngày công theo tính chất công.
Ví dụ từ mùng 1 đến mùng 5 là Nghỉ ốm thì sẽ cho kết quả gộp 1~5/?: Nghỉ ốm.
Có cách nào dùng công thức excel để gom không ạ. Hoặc dùng VBA thì sẽ như nào ạ.
Em ưu tiên dùng excel ạ, vì em không khá VBA lắm.
Có gì chưa rõ mọi người góp ý em ạ.
Em cảm ơn mọi người ạ.
Ở ô B2 chọn Sort & Filter (Sort A to Z/hoặc Z to A) là xong mà công thức gì
 

File đính kèm

  • Gom ngày công-210810.xlsx
    9.7 KB · Đọc: 8
Chào mọi người, em có file mẫu này về việc gom ngày công theo tính chất công.
Ví dụ từ mùng 1 đến mùng 5 là Nghỉ ốm thì sẽ cho kết quả gộp 1~5/?: Nghỉ ốm.
Có cách nào dùng công thức excel để gom không ạ. Hoặc dùng VBA thì sẽ như nào ạ.
Em ưu tiên dùng excel ạ, vì em không khá VBA lắm.
Có gì chưa rõ mọi người góp ý em ạ.
Em cảm ơn mọi người ạ.
Tôi không rành công thức nên không dám trả lời được/không nhưng VBA thì chắc chắn được.
 
Ở ô B2 chọn Sort & Filter (Sort A to Z/hoặc Z to A) là xong mà công thức gì
Bên bảo hiểm yêu cầu hiển thị như mẫu bạn ạ. Phải theo thứ tự ngày. hơn nữa Sort and Filter không gom được. :(
Bài đã được tự động gộp:

Tôi không rành công thức nên không dám trả lời được/không nhưng VBA thì chắc chắn được.
VBA có quá phức tạp không bạn. Vì theo mình biết VBA sẽ được chỉ định cho vùng dữ liệu cho trước, mà vùng dữ liệu của mình sẽ thay đổi. Nên nếu bạn giúp mình VBA thì có thể chỉ mình cách dùng không bạn. Cảm ơn bạn nhiều. :)
Bài đã được tự động gộp:

Có thể, nếu Excel của bạn có hàm TEXTJOIN.

.
Mình có textjoin bạn ạ. Bạn hướng dẫn mình được không. hoặc bạn làm thử trên file mẫu rồi mình học theo. Cảm ơn bạn nhiều.
 
VBA có quá phức tạp không bạn. Vì theo mình biết VBA sẽ được chỉ định cho vùng dữ liệu cho trước, mà vùng dữ liệu của mình sẽ thay đổi. Nên nếu bạn giúp mình VBA thì có thể chỉ mình cách dùng không bạn. Cảm ơn bạn nhiều. :)
Bạn nghĩ như thế nào nếu dùng công thức?
Bạn có chỉ định địa chỉ ô, vùng dữ liệu cho công thức không? Có thay đổi công thức khi vùng dữ liệu thay đổi?
 
VBA có quá phức tạp không bạn. Vì theo mình biết VBA sẽ được chỉ định cho vùng dữ liệu cho trước, mà vùng dữ liệu của mình sẽ thay đổi. Nên nếu bạn giúp mình VBA thì có thể chỉ mình cách dùng không bạn. Cảm ơn bạn nhiều. :)
VBA mới thuận lợi, bạn có thể chọn vùng tuỳ ý. Nhưng bài này còn một chỗ bạn chưa cho kết quả thử. Thí dụ:từ ngày 27 tháng 2 đến ngày 5 tháng 3 nghỉ Covid thì trong kết quả phần này thể hiện ra sao?
Thân
 
Chào mọi người, em có file mẫu này về việc gom ngày công theo tính chất công.
Ví dụ từ mùng 1 đến mùng 5 là Nghỉ ốm thì sẽ cho kết quả gộp 1~5/?: Nghỉ ốm.
Có cách nào dùng công thức excel để gom không ạ. Hoặc dùng VBA thì sẽ như nào ạ.
Em ưu tiên dùng excel ạ, vì em không khá VBA lắm.
Có gì chưa rõ mọi người góp ý em ạ.
Em cảm ơn mọi người ạ.
File dùng VBA cho yêu cầu của bạn
 

File đính kèm

  • Gom ngày công-210810_Tran Khanh Thao.xlsm
    16.7 KB · Đọc: 16
Cảm ơn bạn đã gợi ý! Chờ ý của thớt thôi.
Cảm ơn bạn Maika, code của bạn hay quá. Cũng dễ hiểu nữa. Mình gửi lại bạn dữ liệu nguồn. Bạn giúp mình nhé.
Sheet số 4 là sheet hiển thị kết quả theo số báo danh, sheet số 3, dùng Pivot table để rút gọn dữ liệu nguồn (dữ liệu nguồn là sheet số 1).
Cảm ơn bạn nhiều nhé.:)
 
Cảm ơn bạn Maika, code của bạn hay quá. Cũng dễ hiểu nữa. Mình gửi lại bạn dữ liệu nguồn. Bạn giúp mình nhé.
Sheet số 4 là sheet hiển thị kết quả theo số báo danh, sheet số 3, dùng Pivot table để rút gọn dữ liệu nguồn (dữ liệu nguồn là sheet số 1).
Cảm ơn bạn nhiều nhé.:)
File của bạn nặng quá. Tôi chép 2 sheet cần làm trong file bạn sang file mới nhưng vẫn đảm bảo tên sheet, vị trí vùng dữ liệu nguồn, vùng đích là giống hệt trong file bạn.

Bạn bấm nút để chạy code!

(Bạn có thể chép code sang file gốc của bạn để chạy với lưu ý là dữ liệu trong sheet số 3 có 1 số dòng bị lỗi #N/A. Bạn phải xử lý các dòng đó hết lỗi hoặc xóa chúng đi. Nếu không code sẽ báo lỗi)
 

File đính kèm

  • DienGiaiCong_Tran Khanh Thao.xlsm
    174.2 KB · Đọc: 13
File của bạn nặng quá. Tôi chép 2 sheet cần làm trong file bạn sang file mới nhưng vẫn đảm bảo tên sheet, vị trí vùng dữ liệu nguồn, vùng đích là giống hệt trong file bạn.

Bạn bấm nút để chạy code!

(Bạn có thể chép code sang file gốc của bạn để chạy với lưu ý là dữ liệu trong sheet số 3 có 1 số dòng bị lỗi #N/A. Bạn phải xử lý các dòng đó hết lỗi hoặc xóa chúng đi. Nếu không code sẽ báo lỗi)
Cảm ơn Maika nhiều lắm. Mình chạy thành công rồi. Code của bạn cũng dễ hiểu để dùng nữa. Cảm ơn bạn nhiều nhiều nhé. :heart::heart::heart:
Bài đã được tự động gộp:

Nên chuyển thành UDF để người dùng dễ sử dụng.

Ví dụ: =DienGiaiNgayCong(A2:B22)

.
Dù không hiểu bạn đang nói gì nhưng cảm ơn bạn đã quan tâm bài mình.:D
Bài đã được tự động gộp:

Có thể, nếu Excel của bạn có hàm TEXTJOIN.

.
bạn ơi, nếu được, bạn vẫn chỉ thêm cho mình cách dùng hàm với hàm textjoin nhé. Phòng lúc không có file để cop code mình cũng làm được. Cảm ơn nhe.
 
Cảm ơn Maika nhiều lắm. Mình chạy thành công rồi. Code của bạn cũng dễ hiểu để dùng nữa. Cảm ơn bạn nhiều nhiều nhé. :heart::heart::heart:
Bạn sửa lại code chỗ này chút. Không sửa cũng không sao nhưng để thế thì nhìn code hơi dở
(Bắt đầu từ chỗ T1: , thay các dòng cũ bằng các dòng này)
Rich (BB code):
T1: If Month(arr(i - 1, 3)) = T Then
        KQ = KQ & N & "~" & Day(arr(i - 1, 3)) & "/" & T & ": " & CV
    Else
        KQ = KQ & N & "/" & T & "~" & Day(arr(i - 1, 3)) & "/" & Month(arr(i - 1, 3)) & ": " & CV
    End If
    rw = rw + 1
    arrKQ(rw, 1) = rw: arrKQ(rw, 2) = SBD: arrKQ(rw, 3) = Ten: arrKQ(rw, 4) = KQ
 

File đính kèm

  • Gom ngày công-210810_Tran Khanh Thao.xlsm
    17.3 KB · Đọc: 9
Bạn sửa lại code chỗ này chút. Không sửa cũng không sao nhưng để thế thì nhìn code hơi dở
(Bắt đầu từ chỗ T1: , thay các dòng cũ bằng các dòng này)
Rich (BB code):
T1: If Month(arr(i - 1, 3)) = T Then
        KQ = KQ & N & "~" & Day(arr(i - 1, 3)) & "/" & T & ": " & CV
    Else
        KQ = KQ & N & "/" & T & "~" & Day(arr(i - 1, 3)) & "/" & Month(arr(i - 1, 3)) & ": " & CV
    End If
    rw = rw + 1
    arrKQ(rw, 1) = rw: arrKQ(rw, 2) = SBD: arrKQ(rw, 3) = Ten: arrKQ(rw, 4) = KQ
Cảm ơn bạn Maika hé. Mình sẽ sửa lại.
Bài đã được tự động gộp:

Trong file có 2 công thức:

1 công thức dùng hàm TEXTJOIN và 1 công thức dùng hàm DienGiaiNgayCong()
Cảm ơn bạn Phuocam nhiều nha.
 
File của bạn nặng quá. Tôi chép 2 sheet cần làm trong file bạn sang file mới nhưng vẫn đảm bảo tên sheet, vị trí vùng dữ liệu nguồn, vùng đích là giống hệt trong file bạn.

Bạn bấm nút để chạy code!

(Bạn có thể chép code sang file gốc của bạn để chạy với lưu ý là dữ liệu trong sheet số 3 có 1 số dòng bị lỗi #N/A. Bạn phải xử lý các dòng đó hết lỗi hoặc xóa chúng đi. Nếu không code sẽ báo lỗi)
Bạn Maika ơi, mình hỏi một chút. Bảng dữ liệu của mình có chút thay đổi. Bảng cũ hiển thị từ ngày đầu tháng đến cuối tháng. Còn bây giờ nó chỉ hiện thị những ngày mình cần thôi. Nên công thức đang không chạy. Bạn có thể chỉ mình cách sửa không.
Cảm ơn bạn nhiều.
 
Web KT
Back
Top Bottom