Đánh sô thứ tự theo tháng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
865
Được thích
127
Giới tính
Nam
Nhờ các anh chị giúp em công thức hoặc code đánh số TT theo tháng.
Khi sang tháng mới thì số thứ tự bắt đầu là 1
Trân trọng
 

File đính kèm

Lần chỉnh sửa cuối:
đã xem file của bạn nhưng chưa rõ ý bạn muốn đánh thứ tự thể nào, có hai cách hiểu:

1/ Từ một list các ngày đã có ở cột E, điền số thứ tự vào cột D tương ứng
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.

vậy ý bạn là cách 1 hay cách 2 hay theo nghĩa nào khác? cần làm rõ yêu cầu thì mới giúp bạn, hay bạn muốn cả hai cách?
 
Upvote 0
đã xem file của bạn nhưng chưa rõ ý bạn muốn đánh thứ tự thể nào, có hai cách hiểu:

1/ Từ một list các ngày đã có ở cột E, điền số thứ tự vào cột D tương ứng
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.

vậy ý bạn là cách 1 hay cách 2 hay theo nghĩa nào khác? cần làm rõ yêu cầu thì mới giúp bạn, hay bạn muốn cả hai cách?


Theo cách 2 đó jack nt
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.
 
Upvote 0

File đính kèm

Upvote 0
Theo cách 2 đó jack nt
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.

Mã:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CurMonth&, CurYear&, CurID$, PreNum&, PreMonth&, PreYear&, PreID$, a$(), b$()
    If Target.Column = 5 Then        'can than thi dung target(1)tranh truong hop paste nhieu cells
        If IsDate(Target) Then       'chi dien so thu tu neu nhap vao ngay
            CurMonth = Month(Target) 'thang vua nhap
            CurYear = Year(Target)   'nam vua nhap
            PreID = Target.Offset(-1, -1)   'ID cu
            a = Split(PreID, "-")    'tach theo "-"
            ReDim Preserve a(1)      'redim de tranh loi dinh dang cu khong dung
            PreNum = Val(a(0))       'so thu tu cu
            b = Split(a(1), "/")     'tach theo "/"
            ReDim Preserve b(1)      'redim de tranh loi dinh dang cu khong dung
            PreMonth = Val(b(0))     'thang cu
            PreYear = Val(b(1))      'nam cu
            If CurMonth = PreMonth And CurYear = PreYear Then 'neu cung thang nam thi tang 1
                CurID = Format(PreNum + 1, "000") & "-" & Format(CurMonth, "00") & "/" & CurYear
            Else                     'khac thang nam thi quay lai 1
                CurID = "001" & "-" & Format(CurMonth, "00") & "/" & CurYear
            End If
            Target.Offset(0, -1) = CurID  'dien vao cot D
        End If
    End If
End Sub

trong file của bạn, dán cái này vô code trong sheet1, bảo đảm chạy tốt (đã thử). có thể sửa, bổ sung theo ý.
 
Upvote 0
Mã:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CurMonth&, CurYear&, CurID$, PreNum&, PreMonth&, PreYear&, PreID$, a$(), b$()
    If Target.Column = 5 Then        'can than thi dung target(1)tranh truong hop paste nhieu cells
        If IsDate(Target) Then       'chi dien so thu tu neu nhap vao ngay
            CurMonth = Month(Target) 'thang vua nhap
            CurYear = Year(Target)   'nam vua nhap
            PreID = Target.Offset(-1, -1)   'ID cu
            a = Split(PreID, "-")    'tach theo "-"
            ReDim Preserve a(1)      'redim de tranh loi dinh dang cu khong dung
            PreNum = Val(a(0))       'so thu tu cu
            b = Split(a(1), "/")     'tach theo "/"
            ReDim Preserve b(1)      'redim de tranh loi dinh dang cu khong dung
            PreMonth = Val(b(0))     'thang cu
            PreYear = Val(b(1))      'nam cu
            If CurMonth = PreMonth And CurYear = PreYear Then 'neu cung thang nam thi tang 1
                CurID = Format(PreNum + 1, "000") & "-" & Format(CurMonth, "00") & "/" & CurYear
            Else                     'khac thang nam thi quay lai 1
                CurID = "001" & "-" & Format(CurMonth, "00") & "/" & CurYear
            End If
            Target.Offset(0, -1) = CurID  'dien vao cot D
        End If
    End If
End Sub

trong file của bạn, dán cái này vô code trong sheet1, bảo đảm chạy tốt (đã thử). có thể sửa, bổ sung theo ý.
Cám ơn bạn nhiều nhe!
Trân trọng
 
Upvote 0
Thêm hàm người dùng để bạn có thể có thêm lựa chọn

Bạn nhập số liệu ngày-tháng-năm trước;

Sau đó nhập hàm hay (dùng Filldown) copy xuống ô chứa dòng vừa nhập "Ngày" (Trang 'STT')
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cứ mỗi lần thay đổi trị bên cột E thì cột kia lại thay STT. Sau một hồi thay đổi, được một đống số loạn lên.
 
Upvote 0

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

Back
Top Bottom