Giúp em xây dựng cách check tài khoản trung gian với!

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi daredevil, 22 Tháng tám 2006.

6,912 lượt xem

  1. daredevil

    daredevil Thành viên hoạt động

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Em chào các bác!

    Em có một việc muốn nhờ các bác giúp đỡ, em nghĩ mãi chưa ra cách nào giải quyết vấn đề này. Chả là thế này, em làm kế toán thường qua tài khoản trung gian, ví dụ như bên kế toán phải trả thì thường chuyển qua tài khoản trung gian là 33106, còn bên kế toán tiền mặt hay ngân hàng cũng chuyển qua tài khoản này, cuối tháng bọn em phải check tài khoản này xem có cân không, để cho dễ hình dung, em xin lấy ví dụ:
    Khi quyết định trả nhà cung cấp: Bên kế toán phải trả sẽ làm bút toán:
    Nợ 33101: A đồng
    Có 33106: A đồng
    Bên kế toán tiền mặt sẽ làm bút toán:
    Nợ 33106: A đồng
    Có 11101: A đồng

    Như vậy, cuối tháng bọn em sẽ phải check xem tài khoản 33106 có bị lệch không, các bác hình dung là trên excel sẽ có 2 cột chính cần check, một cột là số phát sinh bên nợ của TK 33106 và 1 cột sẽ là số phát sinh bên có của tài khoản 33106. Tất nhiên là còn có dữ liệu khác như ngày làm rồi thông tin về module nào làm nữa. Nếu tổng số phát sinh Nợ bằng tổng số phát sinh Có thì không nói làm gì vì cân rồi, còn nếu lệch thì sẽ phải truy tìm nguyên nhân ở đâu. Thông thường, bọn em sẽ phải tính tổng phát sinh từng ngày một của tài khoản này và so sánh, như vậy sẽ mất thời gian nhiều vì có thể là bên Có phát sinh vào ngày 2/8 nhưng bên Nợ có thể sẽ phát sinh vào ngày 4/8 và lệch nhau.
    Em muốn tìm một hàm hay công thức nào đó để tìm giá trị đầu tiên của cột phát sinh Nợ trong mảng dữ liệu của cột phát sinh Có, nếu nó tìm thấy ở đâu thì lập tức cố định giá trị cũng như ô dữ liệu đó ở cột phát sinh Có vào. Tiếp theo là tìm giá trị thứ hai của cột phát sinh bên Nợ ở bên cột phát sinh Có, nếu tìm thấy thì cũng cố định như trên. Vấn đề là nếu giá trị thứ 2 này bằng giá trị thứ nhất của cột Nợ thì khi tìm bên cột Có, nó sẽ phải chừa giá trị tìm được tương ứng với giá trị đầu tiên của cột Nợ bên cột Có ra. Nếu nó tìm được giá trị bằng nó thì lại phải cố định vị trí vừa tìm được và cứ như vậy cho đến hết.
    Có thể bài toán của em hơi khó hiểu, nhưng mong các bác đọc kỹ và giúp đỡ em nhiệt tình. Em xin cảm ơn và mong sẽ hậu tạ được các bác.
    Em cám ơn các bác một lần nữa.
     
    #1
  2. ntan50

    ntan50 Thành viên hoạt động

    Bài viết:
    68
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Tôi thấy cách làm của bạn là không ổn. Tự nhiên lại đẻ ra một khâu nữa mà theo dõi.
    Đã có kế toán công nợ theo dõi rồi, có chăng là kế toán công nợ tổng hợp toàn bộ số liệu của tháng để đối chiếu với sổ tiền mặt hoặc ngân hàng thôi.
    Mà bạn hạch toán thế là không đúng. Khi có quyết định thanh toán bạn ghi nhận
    Nợ TK 33101
    Có TK 33106
    Là không đúng vì bạn đã thực sự thanh toán cho nhà cung cấp đâu? Khi đối chiếu công nợ, bạn đối chiếu với họ theo ngày họ nhận được tiền cơ.
    Theo bạn nói, tôi hình dung qui trình thanh toán như sau: Sau khi có quyết định thanh toán, thủ quỹ hay kế toán ngân hàng sẽ làm phiếu chi hay ủy nhiệm chi. Tuy nhiên hai việc này có thể diễn ra đồng thời hoặc cách nhau một khoảng thời gian nhất định. Tôi nghĩ việc dùng thêm TK trung gian chỉ có tác dụng trong trường hợp bạn nhận tiền để thanh toán với nhà cung cấp rồi sau đó quay thanh toán thừa thiếu với thủ quỹ thôi như là tạm ứng vậy.
    Tất nhiên công ty bạn vẫn dùng tài khoản trung gian như vậy thì cách giải quyết vấn đề của bạn là bạn đánh mã cho nhà cung cấp. Cuối tháng khớp cho từng nhà cung cấp một bởi không phải cuối tháng cân mà bạn cho là xong đâu. Có thể thằng nọ bù thằng kia, thằng thì bạn trả thừa thằng thì bạn trả thiếu cùng một lượng. Tóm lại bạn vẫn phải theo dõi chi tiết từng nhà cung cấp mà việc này lại là việc của kế toán công nợ.
     
    #2
  3. daredevil

    daredevil Thành viên hoạt động

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Bác chưa hiểu, việc sử dụng TKTG không làm thay đổi bản chất công nợ của nhà cung cấp, tất cả đều phải theo dõi riêng và thường xuyên. Chỉ có điều là sử dụng TKTG để phân các module AP, Cash rõ ràng thêm thôi và tiện cho việc quản lý theo dõi cũng như quy trách nhiệm cho người làm từng module một. Bọn em quản lý như vậy từ xưa đến nay làm rất chuẩn và không hề có sự nhầm lẫn nào cả. Chỉ có điều khi check tài khoản trung gian thì thường phải sum up theo ngày và check xem khoản nào bị lệch, căn cứ vào ngày làm bên AP và Cash sẽ tìm được tại sao. Cái em quan tâm ở đây là tìm ra một công thức excel sao cho công việc được nhanh chóng hơn mà thôi, chứ còn nếu làm bình thường như bác thì bọn em đã áp dụng từ lâu rồi, sau đó mới chuyển qua cách dùng TKTG.
    Mong các bác hiểu rõ ý của em và giúp đỡ em nhiệt tình. Em xin cảm ơn nhiều.
     
    #3
  4. Song Huong

    Song Huong Thành viên thân thiết

    Bài viết:
    875
    Đã được thích:
    2
    Nơi ở:
    Hỏi quê, rằng mộng ban đầu đã xa
    Chào bạn!
    Gửi bạn macro CheckDrCr kiểm tra số tiền phát sinh bên nợ và số tiền phát sinh bên có.
    Cách sử dụng như sau:
    - Bạn chọn khối dữ liệu cần kiểm tra (cột Nợ và cột Có)
    - Run macro CheckDrCr

    Sub CheckDrCr()

    ' Khai bao cac bien
    Dim ColDr, ColCr, BegRow, EndRow, CurValue, ColCrValue, Counter, RefColDr, RefColCr, i, j

    ' Xac dinh cot, dong can so sanh.
    Counter = 0
    For Each Item In Selection
    If Counter = 0 Then
    BegRow = Item.Row
    ColDr = Item.Column
    ColCr = Item.Column + 1
    Counter = Counter + 1
    End If

    EndRow = Item.Row

    Next Item

    ' Xoa noi dung cac o kiem tra va o tham chieu
    RefColDr = Trim(Cells(BegRow, ColDr + 2).Address)
    RefColCr = Trim(Cells(EndRow, ColCr + 2).Address)
    Range(RefColDr & ":" & RefColCr).ClearContents

    ' So sanh gia tri cac cot Dr/Cr
    For i = BegRow To EndRow

    CurValue = Cells(i, ColDr).Value
    Counter = 0

    For j = BegRow To EndRow
    ColCrValue = Cells(j, ColCr).Value
    If CurValue = ColCrValue And CurValue <> 0 And RTrim(Trim(Cells(j, ColCr + 1).Value)) = "" Then
    Cells(j, ColCr + 1) = i
    Cells(i, ColDr + 3) = j
    Counter = Counter + 1
    Exit For
    End If

    Next j

    If CurValue <> ColCrValue And CurValue <> 0 And Counter = 0 Then
    Cells(i, ColDr + 3) = "N/A"
    Cells(i, ColDr + 3).HorizontalAlignment = xlRight
    End If

    Next i

    For j = BegRow To EndRow
    ColCrValue = Cells(j, ColCr).Value
    If ColCrValue <> 0 And RTrim(Trim(Cells(j, ColCr + 1).Value)) = "" Then
    Cells(j, ColCr + 1) = "N/A"
    Cells(j, ColCr + 1).HorizontalAlignment = xlRight
    End If
    Next j
    End Sub

    PS:
    Bạn nên sử dụng 02 tiểu khoản trung gian 138xx, 338xx có lẽ phù hợp hơn là dùng tiểu khoản của chính tài khoàn đó làm tài khoản trung gian.
    Gửi bạn file 331106.xls, trong đó có Macro CheckDrCr.
    Khi nào ra Hà Nội tớ sẽ đòi hậu tạ đấy nhé.
     
    Last edited: 4 Tháng chín 2006
    #4
  5. ntan50

    ntan50 Thành viên hoạt động

    Bài viết:
    68
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Tôi không nói rằng phương pháp của bạn không chính xác mà chỉ mất công thêm một khâu nữa để xác định trách nhiệm của từng bộ phận như bạn nói thôi. Vậy thì cách của tôi vẫn dùng được. Đánh mã cho từng nhà cung cấp và dùng auto filter là xong hết. Bạn lọc theo ngày rồi lọc theo mã khách hàng, bạn cũng có thể lọc mã khách hàng trong cả tháng. Tôi cho rằng nếu có dùng hàm nào đi chăng nữa thì trong các hàm ấy cũng phải tìm các điều kiện cho giá trị bằng nhau mà bạn định lock lại. Bởi vì các điều kiện này có thể trùng nhau như giả dụ bạn có 10 khách hàng đều phải trả một lượng tiền như nhau thì biết lock lại theo điều kiện nào nếu bạn không tìm theo mã KH. Cứ cho rằng số tiền quyết định thanh toán cho KH bằng đúng số tiền thanh toán thực tế thì bạn không cần quan tâm đến nữa khi thấy sổ trong ngày cân rồi. Tôi không biết lập trình Visual Basic nên dùng vậy cho dễ.
    Tôi tiếp cận vấn đề này theo con mắt đơn thuần của kế toán. Bạn thấy thế nào?
     
    #5

Chia sẻ trang này