Đánh số chứng từ tự động trong excel nhưng lập lại từ đầu theo tháng

Liên hệ QC
Thông tin cần điền tại cột C [Số chứng từ ] căn cứ vào cột hạch toán và cột ngày tháng. Mã cửa hàng là 03 ký tự cuối của tài khoản tiền. Nếu tài khoản 11111 thì không cần điền vì nó có sẵng.
Hình như tài khoản em nó bị chặn việc đính kèm file nên không thể nào upload lên được dù file chỉ nặng 148kb! hbkhuong cho địa chỉ mail em gửi file nhé!
 
Lần chỉnh sửa cuối:
Thông tin cần điền tại cột C [Số chứng từ ] căn cứ vào cột hạch toán và cột ngày tháng. Mã cửa hàng là 03 ký tự cuối của tài khoản tiền. Nếu tài khoản 11111 thì không cần điền vì nó có sẵng.
Hình như tài khoản em nó bị chặn việc đính kèm file nên không thể nào upload lên được dù file chỉ nặng 148kb! hbkhuong cho địa chỉ mail em gửi file nhé!
Xin lỗi trước vì mình dốt lâu về khoản tài chánh này! Nhưng vẫn hỏi để biết

(1) Cột nào là 'cột hạch toán' vậy?

(2) Có 2 cột ngày, thì ta sẽ fải lấy cột nào [Ngày ghi sổ] hay [ngày chứng từ]?

(3) [Tài khoản tiền] ở đâu để lấy 3 kí tự cuối?

?????????????????????????
 
@ChanhTQ sorry bạn mình upload mà không nói rõ:
(1) Cột hạch toán gồm có hai cột: TKGHINO (Cột J) và cột TKGHICO (Cột K)
(2) Mình sẽ lấy theo cột ngày chứng từ, trong trường hợp này ngày chứng từ và ngày hạch toán là 1.
(3) Tài khoản tiền là từ để chỉ các ô mà tại cột TKGHINO và TKGHICO có các ký 2 ký tự đầu là 11. Trong trường hợp này, mình đang lọc lấy tài khoản tiền mặt nên 4 ký tự đầu của ô tại cột TKGHINO và TKGHICO có giá trị là 1111.

Ở trong file đính kèm, tại Cột TKGHINO và TKGHICO mà ô nào có 2 ký tự đầu 11 thì đều là TK tiền. Ví dụ trong ô K2 có giá trị: 1111CNT thì đây là tài khoản tiền và mã Cửa hàng là 3 ký tự cuối là: CNT tương tự đối với K8 mã cửa hàng là VT1. Và ô J62 có giá trị là 11111 thì không cần phải đặt số chứng từ vì nó đã có sẵng tại ô C62.
 
Cột số chứng từ sẽ được đặt theo cấu trúc: [Mã Chứng từ ].[Mã cửa hàng].[tháng][02 ký tự số thứ tự tăng dần của số chứng từ ]
Trong đó:

Nếu ô tại các cột TKGHINO và TKGHICO có giá trị là 11111 (Năm con số 1) thì bỏ qua còn không thì điền thông tin theo điều kiện sau:

. 1 [Mã chứng từ ] Nếu 04 ký tự đầu của cột TKGHINO là 1111 thì [Mã chứng từ ] là: TV còn nếu là 1112 là TU nếu 1113 là TC Còn nếu Cột TKGHINO có giá trị mà các ký tự đầu không phải là 11 thì xét cột TKGHICO nếu 04 ký tự đầu của cột TKGHICO là 1111 thì [Mã chứng từ ] là: CV còn nếu là 1112 là CU nếu 1113 là CC còn còn nếu không thõa các điều kiện trên thì để trống ô số chứng từ.

. 2 [Mã cửa hàng ] nếu ô có 04 ký tự đầu là 1111 là 03 ký tự cuối của ô đó.

. 3 [tháng] là 02 ký tự của tháng chứng từ.

. 4 [02 ký tự số chứng từ ]: Số chứng từ được đánh tăng theo từng mã cửa hàng và từng mã chứng từ và thay đổi bắt đầu lại 01 khi sang tháng mới.
 
Cột số chứng từ sẽ được đặt theo cấu trúc: [Mã Chứng từ ].[Mã cửa hàng].[tháng][02 ký tự số thứ tự tăng dần của số chứng từ ]
Trong đó:

Nếu ô tại các cột TKGHINO và TKGHICO có giá trị là 11111 (Năm con số 1) thì bỏ qua còn không thì điền thông tin theo điều kiện sau:

. 1 [Mã chứng từ ] Nếu 04 ký tự đầu của cột TKGHINO là 1111 thì [Mã chứng từ ] là: TV còn nếu là 1112 là TU nếu 1113 là TC Còn nếu Cột TKGHINO có giá trị mà các ký tự đầu không phải là 11 thì xét cột TKGHICO nếu 04 ký tự đầu của cột TKGHICO là 1111 thì [Mã chứng từ ] là: CV còn nếu là 1112 là CU nếu 1113 là CC còn còn nếu không thõa các điều kiện trên thì để trống ô số chứng từ.

. 2 [Mã cửa hàng ] nếu ô có 04 ký tự đầu là 1111 là 03 ký tự cuối của ô đó.

. 3 [tháng] là 02 ký tự của tháng chứng từ.

. 4 [02 ký tự số chứng từ ]: Số chứng từ được đánh tăng theo từng mã cửa hàng và từng mã chứng từ và thay đổi bắt đầu lại 01 khi sang tháng mới.

??? nếu ô có 04 ký tự đầu là 1112 hay 1113 thì lấy cửa hàng nào?
Bạn cố giải thích cho "ai" cũng hiểu chứ không phải người nào cũng trong nghề kế toán mà hiểu được như bạn.
Bấm nút GPE xem kết quả có đúng ý bạn không, có sheet phụ tên "GPE". Tạm để đó, nếu đúng kết quả sẽ "xử" nó sau.
 

File đính kèm

  • KToan.rar
    87.5 KB · Đọc: 32
Thêm 1 macro để bạn tham khảo & cho í kiến.

Tiền thì ham mà xử lý tiền thì hết ham!
 

File đính kèm

  • gpeTaiChanh.rar
    89.5 KB · Đọc: 35
Thanks Anh Ba Tê và SA_DQ.
Các anh đã thực hiện đúng yêu cầu. File của Anh SA_DQ hình như là anh đang setup mã chứng từ theo định dạng khác giữa các tháng phải không anh?

Anh Ba Tê: . 2 [Mã cửa hàng ] nếu ô có 04 ký tự đầu là 1111 là 03 ký tự cuối của ô đó => Sorry Anh, để em nói rõ lại là: Nếu ô có 03 ký tự đầu là 111 thì mã cửa hàng là 03 ký tự cuối của ô đó.

Có thể lập bằng công thức hay hàm mảng bình thường được không anh? Ba cái vụ Macro hay Visual Basic gì đó em mù tịt.

Thanks các anh!
 
Thanks các anh đã thực hiện đúng yêu cầu.
(1) File của Anh SA_DQ hình như là anh đang setup mã chứng từ theo định dạng khác giữa các tháng phải không anh?
(2) Có thể lập bằng công thức hay hàm mảng bình thường được không anh?
Ba cái vụ Macro hay Visual Basic gì đó em mù tịt!

(1) Tô màu chơi cho vui í mà!

(2) Dữ liệu hơn 2.000 dòng thì hãy quên cái vụ công thức mảng đi!

VBA có gì là đáng sợ cơ chứ? Mọi người đang còn muốn lao zô nhiều, rất nhiều nữa là đằng khác;

Nếu dịch được ngôn ngữ VBA thì trong bài có xài hàm tự tạo để tạo mã mới sau mỗi dòng đang duyệt mà!

Nó đây:
PHP:
Function SoCT(mDat As Date, NgayCT As Date, TKN_C As Range, Optional SCTC As String = "")
 Dim CHg As String
 Dim Cls As Range
 
 SoCT = "CV" & "."
 For Each Cls In TKN_C
    If Left(Cls.Value, 4) = "1111" Or Left(Cls.Value, 3) = "111" Then
        SoCT = SoCT & Right(Cls.Value, 3) & "."
        Exit For
    End If
 Next Cls
 If SCTC = "" Then
    SoCT = SoCT & Right("0" & CStr(Month(NgayCT)), 2) & ".0001"
    Exit Function
 ElseIf CByte(Mid(SCTC, 8, 2)) <> Month(NgayCT) Then
    SoCT = SoCT & Right("0" & CStr(Month(NgayCT)), 2) & ".0001"
    Exit Function
 ElseIf CByte(Mid(SCTC, 8, 2)) = Month(NgayCT) Then
    SoCT = Left(SCTC, 10) & Right("000" & CStr(CInt(Right(SCTC, 4)) + 1), 4)
 End If
End Function
 
Chỉnh sửa lần cuối bởi điều hành viên:
Thanks Anh Ba Tê và SA_DQ.
Các anh đã thực hiện đúng yêu cầu. File của Anh SA_DQ hình như là anh đang setup mã chứng từ theo định dạng khác giữa các tháng phải không anh?

Anh Ba Tê: . 2 [Mã cửa hàng ] nếu ô có 04 ký tự đầu là 1111 là 03 ký tự cuối của ô đó => Sorry Anh, để em nói rõ lại là: Nếu ô có 03 ký tự đầu là 111 thì mã cửa hàng là 03 ký tự cuối của ô đó.

Có thể lập bằng công thức hay hàm mảng bình thường được không anh? Ba cái vụ Macro hay Visual Basic gì đó em mù tịt.

Thanks các anh!

- Do bạn nêu điều kiện không rõ nên tôi phải hỏi thôi, biết đâu chỉ có "1111" mới lấy 3 chữ cuối, ngoài ra thì không lấy.
- Trong code tôi đã "ngầm hiểu" là có "111" thì lấy 3 chữ cuối. Nó đây:
PHP:
If Left(sArr(I, 1), 3) = "111" Then
                ..............................................
..........................
            ElseIf Left(sArr(I, 2), 3) = "111" Then
- Như "Lão ca" đã nói, dữ liệu lu bu hơn 1000 dòng thì "quên" công thức mảng đi.
- Nếu bạn trao đổi được toàn văn bằng tiếng nước ngoài thì nên viết toàn tiếng nước ngoài.
Giao tiếp nửa tây nửa ta nghe "khó chịu" quá.
 
Lần chỉnh sửa cuối:
Cám ơn các anh HYen17 và anh Ba Tê. Dữ liệu gốc của em là khoản 70.000 dòng cơ. Vậy cái này phải sử dụng như thế nào vậy ạ? Ấn Alt+F11 và copy module của anh qua rồi làm thế nào nữa ạ? Em đã tạo thêm sheet GPE như file của anh mà khi ấn F5 thì nó báo lõi.
 
Còn 1 vấn đề nữa là: Ngoài việc nó tự động điền số chứng từ vào ô tại Cột SỐ CHỨNG TỪ nó còn nhân tiện .. xóa luôn các số chứng từ khác hiện đang có trong các ô khác không thõa điều kiện ở tại cột SỐ CHỨNG TỪ này luôn...=> Như vậy là sao vậy????
 
Còn 1 vấn đề nữa là: Ngoài việc nó tự động điền số chứng từ vào ô tại Cột SỐ CHỨNG TỪ nó còn nhân tiện .. xóa luôn các số chứng từ khác hiện đang có trong các ô khác không thõa điều kiện ở tại cột SỐ CHỨNG TỪ này luôn...=> Như vậy là sao vậy????

- Bạn ấn Atl+F11, Insert Module, chép cái Sub GPE() từ trong Mudule của File này vào trong Module của file kia.
- Trong file bạn phải sửa tên sheet cần ghi số CT là "Data", Sheet phụ "GPE" thì phải có dữ liệu A1:C4 như trong file.
- Copy 70.000 dòng của bạn vào file này rồi chạy thử xem sao. Tôi chưa thử chưa biết máy có chịu nỗi không.
 

File đính kèm

  • KToan2.rar
    18.6 KB · Đọc: 38
Lần chỉnh sửa cuối:
Em đã thử và kết quả rất ấn tượng. Cám ơn anh Ba Tê rất nhiều.
 
Web KT

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

Back
Top Bottom