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

Liên hệ QC

tuananh89803

Thành viên mới
Tham gia
16/1/10
Bài viết
29
Được thích
2
Công ty mình đánh số phiếu thu - chi mỗi tháng được lập lại.
Ví dụ: tháng 1: phiếu chi là C001/01, C002/01, C003/01,...
tháng 2: phiếu chi là C001/02, C002/02, C003/02,...
tương tự cho các tháng tiếp theo,
Mình chỉ biết đánh tự động tăng dần, còn lập lại như vậy bằng công thức Excel 2003 thì mình không biết làm cách nào, nhờ mọi người chỉ giúp. Nếu dùng VBA thì mình chưa rành mong mọi người hướng dẫn kỹ chút nha!
 
Mình hướng dẫn bạn xài hàm tự tạo sau

Bạn chép hàm này vô cửa sổ VBE
PHP:
Option Explicit
Function SoFieu(Fieu As String, Optional Dat As Date) As String
 Const GX As String = "/"
 Dim VTr As Byte, Thg As Byte
 
 If Dat = 0 Then Dat = Date
 VTr = InStr(Fieu, GX)
 If VTr Then
    Thg = CByte(Right(Fieu, 2))
    If Thg <> Month(Dat) Then
        If Thg = 12 And Month(Dat) = 1 Then
            SoFieu = Left(Fieu, 1) & "001/01"
        Else
            SoFieu = Left(Fieu, 1) & "001/" & Right("0" & CStr(Month(Dat)), 2)
        End If
    ElseIf Thg = Month(Dat) Then
        SoFieu = Left(Fieu, 1) & Right("00" & CStr(CInt(Mid(Fieu, 2, 3)) + 1), 3) & GX _
            & Right("0" & CStr(Month(Dat)), 2)
    End If
 Else
    SoFieu = "Tao lao"
 End If
End Function

Kết quả xài hàm sẽ thể hiện như bảng sau:

A | B | C
| Số Fiếu |(Cú fáp hàm tự tạo)
2/17/2012|T035/02| <- Số fiếu đang có
3/1/2012|T036/02| <- =SoFieu(B2)
1/1/2013|T001/03| <- =Sofieu(B3,A3)
|T001/01| <- =SoFieu(B4,A4)

Mình tin là bạn sẽ suy luận ra vấn đề.

Chúc vui!
 
Bạn xem trong file đính kèm có đúng ý bạn không nhé!
 

File đính kèm

  • chung tu.xls
    21.5 KB · Đọc: 330
Các mã chứng từ của bạn có độ dài không bằng nhau!

/(hì, Khì,. . . . }}}}}
Cám ơn bác, vậy thì chuyển
="C"&TEXT(COUNTIF($B$2:B2,"<="&DATE(YEAR(B2),MONTH(B2)+1,0))-COUNTIF($B$2:B2,"<="&DATE(YEAR(B2),MONTH(B2),0)),"000")&"/"&MONTH(B2))
thành
="C"&TEXT(COUNTIF($B$2:B2,"<="&DATE(YEAR(B2),MONTH(B2)+1,0))-COUNTIF($B$2:B2,"<="&DATE(YEAR(B2),MONTH(B2),0)),"000")&"/"&TEXT(MONTH(B2),"00")
 
Được rồi! đã thêm được rồi mà giới hạn có 97kb bực quá!
 

File đính kèm

  • Thu-Chi Tien Mat 2012a.xls
    32 KB · Đọc: 163
Bạn dùng công thức sau nhé!
=IF(J2="","C","T")&TEXT(COUNTIF($C$2:C2,"<="&DATE(YEAR(C2),MONTH(C2)+1,0))-COUNTIF($C$2:C2,"<="&DATE(YEAR(C2),MONTH(C2),0)),"000")&"/"&TEXT(MONTH(C2),"00")
 
Ủa công thức có thiếu dấu ( hả bạn, đọc ko hiểu!
 
Công thức hoàn toàn bình thường mà. nếu không chạy được trên máy bạn thì bạn sử dấu phẩy "," thành dấu chấm phẩy (;) trong công thức. gửi lại file cho bạn.
 

File đính kèm

  • Thu-Chi Tien Mat 2012a.xls
    38.5 KB · Đọc: 76
bạn ơi coi lại đi, chứ C002/01 chuyển qua thành T003/01 nè, chứ không phải T001/01! Quan trọng là mình muốn nó chạy số tự động cho mỗi loại phiếu chứ không phải chữ C hay T
 
Bạn dùng công thức sau nhé!
=IF(J2="","C","T")&TEXT(COUNTIF($C$2:C2,"<="&DATE( YEAR(C2),MONTH(C2)+1,0))-COUNTIF($C$2:C2,"<="&DATE(YEAR(C2),MONTH(C2),0))," 000")&"/"&TEXT(MONTH(C2),"00")
Có vài chổ có thể rút gọn, ví dụ:
DATE(YEAR(C2),MONTH(C2),0) là ngày cuối của tháng trước, ta sửa thành C2 - DAY(C2)
TEXT(MONTH(C2),"00") là định dạng tháng theo kiểu "mm", ta sửa thành TEXT(C2,"mm")
 
Nhưng quang trọng là nó chạy 2 phiếu thì lấy số tiếp theo của phiếu trước ví dụ: C003/01 qua phiếu thu thì lại T004/01, chứ không phải T001/01 (đây là phiếu thu đầu tiên của tháng 1), nếu nó chạy tiếp thì đâu cần để chữ C hoặc T trong cú pháp chứ! Phải giải 2 bài toán nên mới rắc rối nè!
 
Lần chỉnh sửa cuối:
Thêm 1 tham khảo cho bạn

Cảm ơn HM Tiến vì file.
 

File đính kèm

  • gpeVatTu.rar
    12.1 KB · Đọc: 145
Nhưng quang trọng là nó chạy 2 phiếu thì lấy số tiếp theo của phiếu trước ví dụ: C003/01 qua phiếu thu thì lại T004/01, chứ không phải T001/01 (đây là phiếu thu đầu tiên của tháng 1), nếu nó chạy tiếp thì đâu cần để chữ C hoặc T trong cú pháp chứ! Phải giải 2 bài toán nên mới rắc rối nè!
Bạn thử dùng công thức này cho ô B2
Mã:
=IF(COUNTIF(H2:I2,1111),IF(H2=1111,"T","C")&TEXT(COUNTIF($B$1:B1,IF(H2=1111,"T","C")&"???/"&TEXT(C2,"mm"))+1,"000")&"/"&TEXT(C2,"mm"),"")
 
cho mình hỏi
"???/" nghĩa là gì? nếu mình muốn cú pháp là C2012-001/01 (với 2012 là năm của ô C2) thì sao, mình thử vào mà nó chạy không được! Mình vẫn chưa hiểu công thức lắm! Hịc!
À đã sửa được!
=IF(COUNTIF(H2:I2,1111),IF(H2=1111,"T"&YEAR(B2)&"-","C"&YEAR(B2)&"-")&TEXT(COUNTIF($B$1:B1,IF(H2=1111,"T"&YEAR(B2)&"-","C"&YEAR(B2)&"-")&"???/"&TEXT(C2,"mm"))+1,"000")&"/"&TEXT(C2,"mm"),"")

Cám ơn mọi người giúp sức!
 
Lần chỉnh sửa cuối:
cho mình hỏi
"???/" nghĩa là gì? nếu mình muốn cú pháp là C2012-001/01 (với 2012 là năm của ô C2) thì sao, mình thử vào mà nó chạy không được! Mình vẫn chưa hiểu công thức lắm! Hịc!
À đã sửa được!
=IF(COUNTIF(H2:I2,1111),IF(H2=1111,"T"&YEAR(B2)&"-","C"&YEAR(B2)&"-")&TEXT(COUNTIF($B$1:B1,IF(H2=1111,"T"&YEAR(B2)&"-","C"&YEAR(B2)&"-")&"???/"&TEXT(C2,"mm"))+1,"000")&"/"&TEXT(C2,"mm"),"")

Cám ơn mọi người giúp sức!

Cái nào là nhân tố chung thì đưa ra ngoài sẽ gọn hơn một chút.
Mã:
=IF(COUNTIF(H2:I2,1111),IF(H2=1111,"T","C")&YEAR(C2)&TEXT(COUNTIF($B$1:B1,IF(H2=1111,"T","C")&YEAR(C2)&"-???/"&TEXT(C2,"mm"))+1,"-000")&"/"&TEXT(C2,"mm"),"")
 
Trường hợp này thì giải quyết như thế nào ạ:
- Số phiếu thu, chi nhảy tự động theo cú pháp: CV.[Cửa hàng].[Tháng]số chứng từ
Trong đó: CV là mã chứng từ chi tiền VNĐ
Yêu cầu: Số chứng từ được quản lý theo tháng và cửa hàng.
Ví dụ: Cty có 02 cửa hàng thì số chứng từ đặt như:
CV.CH1.01.01
CV.CH1.01.02
...
CV.CH1.01.99

Cửa hàng 2:
CV.CH2.01.01
CV.CH2.01.02
....
CV.CH2.01.99

Thanks các anh/chị
 
Web KT

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

Back
Top Bottom