Nhờ giúp về tính tổng số lượng hàng nhập của nhiều tháng

Liên hệ QC

topspeed2179

Thành viên mới
Tham gia
24/10/08
Bài viết
49
Được thích
2
Em có 1 bảng tính với nội dung như sau:
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng nhập (tháng 8, 9, 10,11) (4 sheet) (khoảng 12.000 mặt hàng)
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng xuất (tháng 8, 9, 10,11) (4 sheet)
* Có thể ghép 8 sheet trên thành 1 file và tạo thêm sheet mới để dùng làm bảng tính toán tổng hợp
Yêu cầu đặt ra là: Bảng tổng hợp gồm có:
1. Tính tổng số lượng hàng nhập của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện) (làm công thức sang 1 sheet khác)
2. Tính tổng số lượng hàng xuất của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện)
3. Tính tổng số lượng hàng tồn kho theo từng mặt hàng (có mã hàng đại diện)
Các anh chị ai biết giúp em với... help me!
Nếu dùng hàm sumif thì chỉ được vài mã hàng thôi...chứ đàng này nó cả chục ngàn mã hàng sao sum được đây
CÁM ƠN CÁC ANH CHỊ ĐÃ ĐỌC VÀ NHỚ GIÚP EM VỚI NHÉ!
 
Em có 1 bảng tính với nội dung như sau:
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng nhập (tháng 8, 9, 10,11) (4 sheet) (khoảng 12.000 mặt hàng)
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng xuất (tháng 8, 9, 10,11) (4 sheet)
* Có thể ghép 8 sheet trên thành 1 file và tạo thêm sheet mới để dùng làm bảng tính toán tổng hợp

Tôi có thể ghép 8 sheet đó thành 1 sheet không? Bạn đồng ý, thì sẽ có cách làm đơn giản.
 
Ok anh, anh có thể ghép 8 sheet thành 1 sheet...miễn sao nó ra cho em cái tổng hàng nhập của tất cả các tháng vô một cột và tổng hàng xuất của các tháng vô một cột.
Nhưng cái mà em gặp rắc rối là mã hàng...mã hàng có thể trùng nhau nhưng số lượng nhập xuất lại khác nhau. Và sau khi tìm được mã hàng thì sum tất cả các số lượng của mã đó lại.
Anh chị giúp em với nhe'
Thanks rất nhiều
 
Em có 1 bảng tính với nội dung như sau:
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng nhập (tháng 8, 9, 10,11) (4 sheet) (khoảng 12.000 mặt hàng)
1 Bảng tính có 3 cột: Mã hàng, tên hàng và số lượng xuất (tháng 8, 9, 10,11) (4 sheet)
* Có thể ghép 8 sheet trên thành 1 file và tạo thêm sheet mới để dùng làm bảng tính toán tổng hợp
Yêu cầu đặt ra là: Bảng tổng hợp gồm có:
1. Tính tổng số lượng hàng nhập của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện) (làm công thức sang 1 sheet khác)
2. Tính tổng số lượng hàng xuất của 4 tháng trên theo từng mặt hàng (có mã hàng đại diện)
3. Tính tổng số lượng hàng tồn kho theo từng mặt hàng (có mã hàng đại diện)
Các anh chị ai biết giúp em với... help me!
Nếu dùng hàm sumif thì chỉ được vài mã hàng thôi...chứ đàng này nó cả chục ngàn mã hàng sao sum được đây
CÁM ƠN CÁC ANH CHỊ ĐÃ ĐỌC VÀ NHỚ GIÚP EM VỚI NHÉ!
Quan trọng nhất của bài này là bạn đã có bảng danh mục hàng hóa chưa. Nếu có rồi thì dùng sumif(nhap01)+...+sumif(nhap04) và sumif(xuat..) (1)
Còn không phải tạo ra bảng danh mục hàng hóa gồm những mã hàng, tên hàng duy nhất.
Cái này nếu dùng ct thì hơi phê. Mà dùng cái gì bạn cũng phải copy MaHH, TenHH của 4 file nhập vào 1 sh, xuất thì khỏi, không nhập thì lấy dâi mà xuất. Dùng advance filter, chọn record only là true, kết xuất ra 1 nơi khác và làm lại bước (1).
Còn dùng VBA thì pro hơn.
 
Ok anh, anh có thể ghép 8 sheet thành 1 sheet...miễn sao nó ra cho em cái tổng hàng nhập của tất cả các tháng vô một cột và tổng hàng xuất của các tháng vô một cột.
Nhưng cái mà em gặp rắc rối là mã hàng...mã hàng có thể trùng nhau nhưng số lượng nhập xuất lại khác nhau. Và sau khi tìm được mã hàng thì sum tất cả các số lượng của mã đó lại.

Là sao em không hiểu. Em đã có bảng danh mục hàng hóa rồi đó (nó gồm có MaHH và TenHH)
Nhưng rất nhiều mã....
Em không up được cái bảng lên nên hơi khó để anh giúp. Nhưng em giải thích sơ thế này nhé:
Em làm ở siêu thị, Tháng 12 em làm báo cáo xuất nhập tồn cho tháng 8-9-10-11
Hiện phần mềm bị lỗi không làm được việc này, nên em đã export ra bảng nhập của tháng 8-9-10-11 và bảng xuất của 4 tháng đó.
Ví dụ mã hàng 001 trong tháng 8 xuất hiện 20 lần với số lượng khác nhau tương tự cho các tháng khác. Rồi khi xuất cũng vậy...1 mã xuất hiện nhiều lần với số lượng khác nhau. Mà có khoảng 10.000 mã hàng như vậy.
Bây giờ cái em cần là 1 cột tổng hàng nhập và một cột tổng hàng xuất của mã 001, 002, 003.......10.000 (mà gộp các tháng lại với nhau vô 1 cột đó) Để em tính số lượng hàng tồn kho. (phục vụ kiểm kê cuối năm)
Thanks ThuNghi đã hướng dẫn...nhưng mình chưa rõ lắm.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Là sao em không hiểu. Em đã có bảng danh mục hàng hóa rồi đó (nó gồm có MaHH và TenHH)
Nhưng rất nhiều mã....
Em không up được cái bảng lên nên hơi khó để anh giúp. Nhưng em giải thích sơ thế này nhé:
Em làm ở siêu thị, Tháng 12 em làm báo cáo xuất nhập tồn cho tháng 8-9-10-11
Hiện phần mềm bị lỗi không làm được việc này, nên em đã export ra bảng nhập của tháng 8-9-10-11 và bảng xuất của 4 tháng đó.
Ví dụ mã hàng 001 trong tháng 8 xuất hiện 20 lần với số lượng khác nhau tương tự cho các tháng khác. Rồi khi xuất cũng vậy...1 mã xuất hiện nhiều lần với số lượng khác nhau. Mà có khoảng 10.000 mã hàng như vậy.
Bây giờ cái em cần là 1 cột tổng hàng nhập và một cột tổng hàng xuất của mã 001, 002, 003.......10.000 (mà gộp các tháng lại với nhau vô 1 cột đó) Để em tính số lượng hàng tồn kho. (phục vụ kiểm kê cuối năm)
Thanks ThuNghi đã hướng dẫn...nhưng mình chưa rõ lắm.
Vậy thì quá dễ, em làm 1 file thô gồm 4 sh nhap, 4 sh xuat, 1 sh dmhh. Mỗi sh 2 dòng có thể là 0 dòng. Riêng DMHH thì phải có đủ. Up lên tôi sẽ làm cho. Muốn ct hay VBA đều OK.
 
Ok mà cái danh mục hàng hóa nén lại cũng hơn 1MB. ma upload lên không được...chỉ em cách up lên đi. em đăng nhập rồi mà cứ đò đăng nhập lại hoài !
Hay là em up file chỉ có 4 sh nhập và xuất, khỏi dmhh. Mỗi sh khoảng 5 dòng và yêu cầu.
 
Ok rồi em upload cai file lên nhé
Các anh chị giúp em cái công thức rồi em làm cho các thứ còn lại
 
Lần chỉnh sửa cuối:
Ok rồi em upload cai file lên nhé
Các anh chị giúp em cái công thức rồi em làm cho các thứ còn lại
Đã bỏ bớt 1 số mặt hàng cho gọn, làm theo cách dễ nhất, nên tham khảo về cách tạo name động. Em xem file. Góp ý, trong phần nhập không cần thêm tên cty nhập thành 1 dòng vì bản thân mã HH có tiêu thức mã KH (1002).
 

File đính kèm

  • BANG TONG HOP_dien dan1.rar
    12.7 KB · Đọc: 110
Chà hay quá, Thanks ThuNghi nhiều....Nhưng bạn ơi có thể diễn giải cái công thức đó giúp mình được không? Ví dụ mấy cái định nghĩa tên đó là mình phải làm sao vậy? (MaHHXu08.....)

Có ai đang coi topic này hồi âm giúp em cái đi.
Cái file anh ThuNghi up lên em k hiểu với lại cái file của em đưa lên có nhiều mã, nhiều mặt hàng, giờ em lấy cái của anh thuNghi về áp vô không biết có chínhx ác hay không.....hic ai giúp em với.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có ai đang coi topic này hồi âm giúp em cái đi.
Cái file anh ThuNghi up lên em k hiểu với lại cái file của em đưa lên có nhiều mã, nhiều mặt hàng, giờ em lấy cái của anh thuNghi về áp vô không biết có chínhx ác hay không.....hic ai giúp em với.
Copy dữ liệu em đang có vào file tôi up lên. Nhớ là file xuat th 8 thêm một dòng vào dòng 18 mà sl =0 vì chưa làm ct bẫy chỗ đó. Do tháng 8 không phát sinh. Báo trước là ct với dữ liệu như em chạy không nổi. Mai sẽ làm cho = VBA.

Ok rồi em upload cai file lên nhé
Các anh chị giúp em cái công thức rồi em làm cho các thứ còn lại
Bạn dùng thử file này, tôi không test được, không hiểu sao máy của tôi không thể chạy code sumif với 10.000 dòng.
Danh ơi! Test hộ anh.
 

File đính kèm

  • BANGTONGHOPNXT.rar
    842.1 KB · Đọc: 24
Chỉnh sửa lần cuối bởi điều hành viên:
Đây là cách thứ 2 vận dụng Find nhưng mà cũng chạy chậm. Bạn xem lại, hình như có những mặt hàng có xuất mà không nhập.
Lý do chậm có lẽ là mahh đặt không tống nhất khi thì text, khi thì số và độ dài không thống nhất. Dùng countif, sumif, match đều bị chậm. Nhờ các bạn test hộ vì sao. Chưa có bài nào mà vất vả như bài này.
 

File đính kèm

  • BANGTONGHOPNXT-01.rar
    862.9 KB · Đọc: 62
Cám ơn Anh nhiều lắm anh ThuNghi....các anh chị vất vã quá, nhưng thật ra bài toán này em thấy cũng hay nên mong mọi người giúp em bằng nhiều cách làm khác nhau...khong những 10.000 ma có thề nhiều hơn nữa thì có cách nào chạy nhanh hơn không anh?
 
Mà anh ơi làm sao em xem được các công thức anh làm đây...
Anh có thể diễn giải giúp em được không?
Anh chỉ luôn cho em làm sao để tìm tên hoặc mã hàng từ cái TongHop của anh với. Em tìm theo cách bình thường nó không nhìn thấy !
 
? Những mã hàng có nhập chưa xuất thì không tính tồn à?
 
Mà anh ơi làm sao em xem được các công thức anh làm đây...
Anh có thể diễn giải giúp em được không?
Anh chỉ luôn cho em làm sao để tìm tên hoặc mã hàng từ cái TongHop của anh với. Em tìm theo cách bình thường nó không nhìn thấy !
Nghe bạn hỏi thế tôi đoán bạn chưa biết nhiều về VBA
Vì vậy:
- Dù có "xem" được cái mà anh ThuNghi viết chưa chắc bạn đã hiểu chứ đừng nói là sửa ---> Vì nó đao to búa lớn quá (ngay ThuNghi còn "than khổ" , bạn không thấy sao)
- Nếu đã chấp nhận "mua về xài" thì tốt nhất quên đi chuyện "hiểu"
- Nếu muốn học để hiểu thì nên từ những bài dể nhất về VBA (Có thể tham khảo các bài viết của anh SA_DQ)
Nói thiệt chứ ngay cả ThuNghi viết cho bạn xong, 1 tuần nữa xem lại có khi còn hỏng hiểu mình viết cái gì +-+-+-++-+-+-++-+-+-+
(ThuNghi mà giãi thích hết toàn bộ code chắc .. le còi luôn quá... Ẹc... Ẹc...)
 
Ủa là sao bạn HVL? Tính hết chứ...
Ở đây mã hàng chỉ có độ dài là không thống nhất thôi...chứ đâu có ký tự nào đâu anh ThuNghi !
Nó bị mã hóa đó. Bây giờ mình format cell = number là ok...chỉ toàn số không thôi.
Anh ThuNghi có online thì giải thích dùm cho em cái công thức với nghe anh. Trường hợp em muốn thêm 2 cột nữa có tên là Bán sỉ và Bán lẻ có được không anh?
 
Đây là cách thứ 2 vận dụng Find nhưng mà cũng chạy chậm. Bạn xem lại, hình như có những mặt hàng có xuất mà không nhập.
Lý do chậm có lẽ là mahh đặt không tống nhất khi thì text, khi thì số và độ dài không thống nhất. Dùng countif, sumif, match đều bị chậm. Nhờ các bạn test hộ vì sao. Chưa có bài nào mà vất vả như bài này.

Bác xem thế này được chưa?
Tổng t/g = 2.875" (Test tại máy của em)


Cách thực hiện

  1. Lấy toàn bộ số liệu Xuất, nhập vào Tmp, Sort theo cột ĐVT. Xóa Row (có ĐVT = blank). Sort lại theo MaHH
  2. AdF Unique lấy MaHH
  3. Find theo MaHH lấy Tên hàng hóa và ĐVT (thay cho công việc VLOOKUP)
  4. Find + Do While ... Loop (thay cho SUMIF) để lấy số liệu Nhập và Xuất => Tồn = Nhập - Xuất

Chi tiết code trong File đính kèm
--------------------------------

So sánh với kết quả của bác thì hơi khác tý không biết thế nào. Bác kiểm tra lại số liệu nhé
 

File đính kèm

  • boyxin TH_NXT_01.rar
    540 KB · Đọc: 176
Thử kết quả

Ủa là sao bạn HVL? Tính hết chứ...
Ở đây mã hàng chỉ có độ dài là không thống nhất thôi...chứ đâu có ký tự nào đâu anh ThuNghi !
Nó bị mã hóa đó. Bây giờ mình format cell = number là ok...chỉ toàn số không thôi.
Anh ThuNghi có online thì giải thích dùm cho em cái công thức với nghe anh. Trường hợp em muốn thêm 2 cột nữa có tên là Bán sỉ và Bán lẻ có được không anh?

Khi tôi test thử thì thấy:
1. Nếu độ rộng cột không đủ thì mã hàng biến thành kí số khoa học (dạng xxxEyy)
2. Một số mục không tính hàng tồn theo mã nếu giá trị xuất để trống (chưa xuất)

Nếu dữ liệu kết xuất thống nhất 1 định dạng (tất cả các file xuất-nhập đều có cùng cấu trúc, phân biệt chỉ ở giá trị là xuất hay nhập) thì có thể đơn giản hóa không cần tính toán như sau:
1. Lọc lấy dữ liệu với điều kiện mã hàng có độ dài lớn hơn 4 kí tự (là các mã tổng hợp)
2. Với giá trị xuất thì chuyển thành số âm
3. Ghép toàn bộ thành 1 sheet
4. Dùng PivotTable để tổng hợp số liệu

(ghi lại thành 1 marco để tổng quát hóa cho tất cả các trường hợp sau này)
Chỉ lưu ý về việc bảo toàn cách đặt tên như hiện nay đối với các sheet: bâtứ đầu bằng Nhapxx và Xuatxx để có thể nhận dạng.
 
Bài này, do mình muốn cột MaHH là text để giữ những mahh 0100...Để ý thấy nếu cột mahh là number thì sumif, vlookup chạy vèo vèo luôn.
Còn ndu nói đúng, tôi cũng không can đảm xem lại code, cần thì viết code khác lẹ hơn xem lại.
Dùng find thì cũng có cái hay nhưng khi find mà không có thì phải thêm
if rngFound is nothing then
Mà dùng countif để kiểm tra thì cũng chậm. Lạ quá. Trừ khi maHH là general.
 
Web KT
Back
Top Bottom