Tư vấn lập công thức tính hàng tồn kho (1 người xem)

  • Thread starter Thread starter tvxdgt
  • Ngày gửi Ngày gửi

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

tvxdgt

Thành viên tiêu biểu
Tham gia
13/10/07
Bài viết
475
Được thích
604
Em có bảng dử liệu như sau: một sheet định lượng pha chế cafe, sheet nhập hàng, sheet bán hàng, sheet tồn kho. Giờ em muốn tính số lượng hàng tồn kho sau khi đã bán được một số ly ca fe dựa vào định lượng pha chế, số ly bán ra và hàng nhập kho. Xem thêm trong file đính kèm.
file thực tế số liệu rất nhiều, em có tìm hướng làm cột phụ và hàm sumproduct nhưng chạy hơi bị nặng.
Em Xin chân thành cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:
Em có bảng dử liệu như sau: một sheet định lượng pha chế cafe, sheet nhập hàng, sheet bán hàng, sheet tồn kho. Giờ em muốn tính số lượng hàng tồn kho sau khi đã bán được một số ly ca fe dựa vào định lượng pha chế, số ly bán ra và hàng nhập kho. Xem thêm trong file đính kèm.
file thực tế số liệu rất nhiều, em có tìm hướng làm cột phụ và hàm sumproduct nhưng chạy hơi bị nặng.
Em Xin chân thành cảm ơn!
Cái này làm hơi lâu àh nha.Phải thiết kế bảng tính lại
 
Em có cách làm này vẫn giữ nguyên bảng tính, làm thêm bảng phụ bên sheet D.xuat, dùng các hàm sumif và sumproduct, vlookup để tính ra hàng tồn kho. Nhưng cảm thấy vẫn rất nông dân, nhờ các bác chỉ giáo cách khác hay hơn ạ!
 

File đính kèm

Bài này chưa có ai giải đáp, em cũng chỉ có cách ...Nông Văn Dền như chủ topic nên không dám post bài.
Các bác có thể giúp bạn ấy thì ra tay...giải quyết giùm ạ. Em cũng đang quan tâm đến chủ đề này quá...
 
Bài này chưa có ai giải đáp, em cũng chỉ có cách ...Nông Văn Dền như chủ topic nên không dám post bài.
Các bác có thể giúp bạn ấy thì ra tay...giải quyết giùm ạ. Em cũng đang quan tâm đến chủ đề này quá...

Theo mình thì cái này chắc chỉ có VBA mới giải quyết được vấn đề xử lý nhiều dữ liệu và không rùa chứ dữ liệu nhiều thì công thức mảng bó tay luôn (còn rùa hơn cả làm bảng, cột phụ).

Thân.
 
Lần chỉnh sửa cuối:
Bạn xem file đính kèm xem có đúng ý chưa nha. Mình bận quá chắc không diễn giải kỹ được trên đây. Có gì bạn qua skype nhé.

Chúng ta có các sheet sau:

DMHH
: chứa danh mục hàng hóa -Rất quan trọng để chuẩn hóa mã hàng và lập công thức
DINHMUC: Chứa định mức NVL cho từng loại món và tổng số lượng bán
MuaHang: Sổ nhật ký mua hàng
BanHang: Sổ nhật ký bán hàng
TonKho: Sổ tồn kho = Mua hàng - Xuất pha chế để bán

Dùng những hàm đơn giản thôi nhưng khá hiệu quả cho 1 quán cafe nhỏ nhỏ của bạn.
 

File đính kèm

Lần chỉnh sửa cuối:
Bài này chưa có ai giải đáp, em cũng chỉ có cách ...Nông Văn Dền như chủ topic nên không dám post bài.
Các bác có thể giúp bạn ấy thì ra tay...giải quyết giùm ạ. Em cũng đang quan tâm đến chủ đề này quá...

Thử cách VBA này xem thế nào, trúng thì tốt, hỏng trúng thì tính tiếp.

Ooooooh hiểu sai ý nên làm trật xa lắc xa lơ rồi. Để rảnh thì nghiên cứu lại, chứ cái này mà làm bằng công thức thì có lẽ sẽ xử lý chậm lắm
 
Lần chỉnh sửa cuối:
Bạn xem file đính kèm xem có đúng ý chưa nha. Mình bận quá chắc không diễn giải kỹ được trên đây. Có gì bạn alo mình số 0903 73 73 93 nhé.

Chúng ta có các sheet sau:

DMHH
: chứa danh mục hàng hóa -Rất quan trọng để chuẩn hóa mã hàng và lập công thức
DINHMUC: Chứa định mức NVL cho từng loại món và tổng số lượng bán
MuaHang: Sổ nhật ký mua hàng
BanHang: Sổ nhật ký bán hàng
TonKho: Sổ tồn kho = Mua hàng - Xuất pha chế để bán

Dùng những hàm đơn giản thôi nhưng khá hiệu quả cho 1 quán cafe nhỏ nhỏ của bạn.
Cảm ơn anh rất nhiều, cách thiết kế bảng tính của anh rất hay, chỉ dùng những hàm đơn giản mà lại hiệu quả.
Thử cách VBA này xem thế nào, trúng thì tốt, hỏng trúng thì tính tiếp.
code của anh Quang hải có một vấn đề là chưa cập nhật được hàng bán ra dựa vào định mức pha chế.
 
Lần chỉnh sửa cuối:
code của anh Quang hải có một vấn đề là chưa cập nhật được hàng bán ra dựa vào định mức pha chế.[/QUOTE đã viết:
Thử lại code này xem thế nào, hy vọng là đã đúng yêu cầu đấy
 

File đính kèm

Thử lại code này xem thế nào, hy vọng là đã đúng yêu cầu đấy
Rất cảm ơn anh, code anh đã đáp ứng yêu cầu. Nhưng còn thêm một trường hợp nữa háng bán ra không thuộc hàng pha chế có nghĩa là hàng bán ra bao nhiêu thì trừ luôn trong hàng nhập.
 
Lần chỉnh sửa cuối:
Rất cảm ơn anh, code anh đã đáp ứng yêu cầu. Nhưng còn thêm một trường hợp nữa háng bán ra không thuộc hàng pha chế có nghĩa là hàng bán ra bao nhiêu thì trừ luôn trong hàng nhập.
Hic nhìn trong file có thấy dữ liệu nào được bán ra mà không có trong pha chế đâu, vậy làm sao mà trừ được?
 
Để tổng hợp và truy vấn dữ liệu dể dàng, bạn nên sắp xếp và xây dựng lại dữ liệu hợp lý. Nếu bạn chịu sắp xếp tôi sẽ có cách giúp bạn.
 
Để tổng hợp và truy vấn dữ liệu dể dàng, bạn nên sắp xếp và xây dựng lại dữ liệu hợp lý. Nếu bạn chịu sắp xếp tôi sẽ có cách giúp bạn.
Vâng, Bác tư vấn cho em cách sắp xếp dử liệu với ạ, và cách truy vấn dử liệu và tổng hợp dử liệu. Xin chân thành cảm ơn!
 
Vâng, Bác tư vấn cho em cách sắp xếp dử liệu với ạ, và cách truy vấn dử liệu và tổng hợp dử liệu. Xin chân thành cảm ơn!
Xin lỗi không nói bạn trước ý đồ của mình. Để dữ liệu gọn gàn, truy vấn dể. Tôi đề nghị bạn nên dùng Access để thiết kế các bảng dữ liệu, sau này mình sẽ nhập liệu vào đó. Bạn chịu cách này tôi sẽ gửi ví dụ.
Dĩ nhiên mình sẽ nhập liệu rà truy vấn ở Excel.
 
Xin lỗi không nói bạn trước ý đồ của mình. Để dữ liệu gọn gàn, truy vấn dể. Tôi đề nghị bạn nên dùng Access để thiết kế các bảng dữ liệu, sau này mình sẽ nhập liệu vào đó. Bạn chịu cách này tôi sẽ gửi ví dụ.
Dĩ nhiên mình sẽ nhập liệu rà truy vấn ở Excel.
Vâng được thế thì hay quá, em cũng đang muốn tìm hiểu thêm Ado truy vấn dử liệu qua Access. Nhờ anh cho em một ví dụ.
 
Vâng được thế thì hay quá, em cũng đang muốn tìm hiểu thêm Ado truy vấn dử liệu qua Access. Nhờ anh cho em một ví dụ.

Tôi tạo CSDL chứa trong file Access có tên là CAPHE.mdb

1./ Kết nối với CSDL

Mã:
Public cnn As New ADODB.Connection
Sub Moketnoi()
  With cnn
    .ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.Path & "\caphe.mdb"
    .CursorLocation = adUseClient
    .Open
  End With
    
End Sub

2./ Truy vấn và tính tồn kho:

Mã:
Private Sub CommandButton1_Click()
Dim lsSQL As String: Dim rst As New ADODB.Recordset
On Error Resume Next
If cnn.State <> 1 Then Moketnoi
     cnn.Execute "Drop table tblDMSD"
        'Tao bang tblDMSD de chua danh muc DMSD
       lsSQL = "SELECT DMXUAT.NGAY, DMXUAT.PHIEU, DMXUAT.MAHANG, DMHANG.TENHANG, DINHMUC.MANL, DMVATTU.TENNL, DINHMUC.DMVT, DMXUAT.XUAT, [DMVT]*[XUAT] AS TONGDM INTO tblDMSD " & _
                 "FROM DMVATTU INNER JOIN ((DMHANG INNER JOIN DINHMUC ON DMHANG.MAHANG = DINHMUC.MAHANG) INNER JOIN DMXUAT ON DMHANG.MAHANG = DMXUAT.MAHANG) ON DMVATTU.MANL = DINHMUC.MANL;"
       rst.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
        'Tao bang tblTongDM de chua tong hop DMSD
       lsSQL = "SELECT tblDMSD.MANL, tblDMSD.TENNL, Sum(tblDMSD.TONGDM) AS Tong INTO tblTongDM " & _
                "FROM tblDMSD " & _
                "GROUP BY tblDMSD.MANL, tblDMSD.TENNL;"
       rst.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
        'Tao bang tblTongNhap de chua hang nhap
       lsSQL = "SELECT DMNHAP.MANL, Sum(DMNHAP.NHAP) AS TongNhap INTO tblTongNhap " & _
                "FROM DMNHAP " & _
                "GROUP BY DMNHAP.MANL;"
        'Tien hang truy van va tinh so luong ton kho
       rst.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
                lsSQL = "SELECT DMVATTU.MANL, DMVATTU.TENNL, DMVATTU.DVT, tblTongNhap.TongNhap, tblTongDM.Tong AS TongXuat, IIf(IsNull([TongNhap]),0,[TongNhap])-IIf(IsNull([tong]),0,[tong]) AS Ton, DMVATTU.DONGIA, [DONGIA]*[ton] AS ThanhTien " & _
                        "FROM (tblTongDM RIGHT JOIN DMVATTU ON tblTongDM.MANL = DMVATTU.MANL) LEFT JOIN tblTongNhap ON DMVATTU.MANL = tblTongNhap.MANL;"


       rst.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
        'Dua du lieu co duoc ra sheet TONKHO
       Sheets("TONKHO").Range("A5").CopyFromRecordset rst
 rst.Close
 Set rst = Nothing
cnn.Close
Set cnn = Nothing


End Sub

Bạn giải nén và mở file excel nhé
 

File đính kèm

Thực ra thì em có làm một file quản lý ca phê như thế này, em làm chỉ vướng ở phần tồn kho, em đưa file lên nhờ các anh góp ý luôn.
 
Em nghĩ, với file của anh, nên để CSDL chứa trong file Access, thiết kế lại CSDL. Cách chứa dữ liệu ở access giúp chạy chương trình nhẹ hơn mà chỉ tốn công 1 lần sau đó ...ngồi vuốt râu...hihi. Anh tvxdgt suy nghĩ và nghiên cứu nhé...
 
Lần chỉnh sửa cuối:
Cảm ơn tất cả mọi người, phần thiết kế dử liệu CSDL chứa trong file Access, Ado hi hi chắc để học từ từ và nghiên cứu thêm. Hướng trước mắt làm trong file này chắc theo hướng của anh Quang Hải. Vì quán ca phê cũng nho nhỏ thui.!
 
Sửa lại file có dữ liệu được bán ra mà không có trong pha chế, nhờ anh viết thêm code lại. Xin chân thành cảm ơn!



Cũng hơi khó nhưng chắc là viết code được, kiên nhẫn đợi kết quả nha vì mình phải mò mẫm kiến thức từ diễn đàn mà
 
Cảm ơn tất cả mọi người, phần thiết kế dử liệu CSDL chứa trong file Access, Ado hi hi chắc để học từ từ và nghiên cứu thêm. Hướng trước mắt làm trong file này chắc theo hướng của anh Quang Hải. Vì quán ca phê cũng nho nhỏ thui.!
Bạn xem lại file này xem đã đáp ứng hết yêu cầu chưa
 

File đính kèm

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

Back
Top Bottom