Cập nhật dữ liệu với nhiều điều kiện

  • Thread starter Thread starter subv
  • Ngày gửi Ngày gửi
Liên hệ QC

subv

code vẽ người
Tham gia
29/6/12
Bài viết
36
Được thích
15
Giới tính
Nam
Nghề nghiệp
Tự do
Kính nhờ các Anh/Chị, các bác giúp em (cháu) xử lý trường hợp này với ạ.
Em (cháu) hiện vẫn phải làm thủ công qua nhiều thủ thuật mới giải được bài toán này.
Nay qua diễn đàn hay vọng được sự giúp đỡ của mọi người, bài toán có thể giải quyết nhanh hơn ạ.
Em (cháu) xin cám ơn mọi người ạ.
P/s:
Miêu tả bài toán em (cháu) gửi bằng hình chụp, kèm trong file ạ.
 

File đính kèm

  • Cap_nhat_du_lieu.png
    Cap_nhat_du_lieu.png
    163.5 KB · Đọc: 42
  • XuatHang_HCM.xlsx
    XuatHang_HCM.xlsx
    1.9 MB · Đọc: 17
Kính nhờ các Anh/Chị, các bác giúp em (cháu) xử lý trường hợp này với ạ.
Em (cháu) hiện vẫn phải làm thủ công qua nhiều thủ thuật mới giải được bài toán này.
Nay qua diễn đàn hay vọng được sự giúp đỡ của mọi người, bài toán có thể giải quyết nhanh hơn ạ.
Em (cháu) xin cám ơn mọi người ạ.
P/s:
Miêu tả bài toán em (cháu) gửi bằng hình chụp, kèm trong file ạ.
Đồng chí Sử không nghỉ lễ mà vẫn phải lo việc à?
File của đồng chí gửi kèm 1 lít chuối hột mang lên nhà bác @SA_DQ sau 15 phút là xong nhe!
 
Upvote 0
Đồng chí Sử không nghỉ lễ mà vẫn phải lo việc à?
File của đồng chí gửi kèm 1 lít chuối hột mang lên nhà bác @SA_DQ sau 15 phút là xong nhe!
Dạ, tranh thủ mấy ngày này quởn tay em vọc tí.
Bến Tờ re, Ba Tờ ri có rịu Phú Lễ, xin được hầu @SA_DQ ạ.
Anh có thời gian xuống luôn với em nhé!
Bài đã được tự động gộp:

Bác nào hiểu làm bài này đi cho em hóng hớt tý ạ @@.
sao chủ Pic k là mẫu tý nhỉ.
Trước giờ em vẫn làm, nhưng như kiểu nông dân vác cài lên phố bạn ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ, tranh thủ mấy ngày này quởn tay em vọc tí.
Bến Tờ re, Ba Tờ ri có rịu Phú Lễ, xin được hầu @SA_DQ ạ.
Anh có thời gian xuống luôn với em nhé!
Bài đã được tự động gộp:


Trước giờ em vẫn làm, nhưng như kiểu nông dân vác cài lên phố bạn ạ.
Cái File chú xem rồi nhưng có mấy cái không hiểu:
1/ Sheet Data không có tên cột kho thì dựa vào cái gì để tính tồn kho, cột EAN là cái gì mà có 20 Cell trống..
2/ Đúng ra phải làm phiếu xuất hàng chứ sao lại dùng BẢNG XUẤT HÀNG, đúng ra nó phải có Đơn vị tính, số lượng, đơn giá nữa chứ.
3/ Tên vật tư sao trùng nhiều quá (nó khác mã hàng)?
4/ EAN cũng trùng?

A_TenVT.JPG

A_EN.JPG
 
Upvote 0
Cái File chú xem rồi nhưng có mấy cái không hiểu:
1/ Sheet Data không có tên cột kho thì dựa vào cái gì để tính tồn kho, cột EAN là cái gì mà có 20 Cell trống..
2/ Đúng ra phải làm phiếu xuất hàng chứ sao lại dùng BẢNG XUẤT HÀNG, đúng ra nó phải có Đơn vị tính, số lượng, đơn giá nữa chứ.
3/ Tên vật tư sao trùng nhiều quá (nó khác mã hàng)?
4/ EAN cũng trùng?

View attachment 216264

View attachment 216265
Dạ,
1/sheet Data chỉ chứa thông tin về thuộc tính của SP, còn về số lượng tồn kho thì lại nằm ở Sheet TonKho; hai sheets nay chung nhau “Mã vật tư”. Còn EAN là mã code mà KH dùng để đắt hàng, trong khi tồn kho thì dùng “Mã vật tư”. Kiểu tham chiếu giống tắm đoạn luận vậy ạ.
2/ Chính xác như chưa nói là phải vậy, nhưng để tóm tắt bảng tính cháu chỉ tìm cần các thông tin như “Mã vật tư”, số lượng phải sr xuất của mỗi kho tương ứng là được.
3/ Mỗi “Mã vật tư” sẽ có một tên riêng, nhưng nhiều “Mã vật tư” có thể chỉ là một SP do cùng một mã EAN.
4/ Từ (3) kéo sang (4) là vậy đó ạ.
 
Upvote 0
Dạ,
1/sheet Data chỉ chứa thông tin về thuộc tính của SP, còn về số lượng tồn kho thì lại nằm ở Sheet TonKho; hai sheets nay chung nhau “Mã vật tư”. Còn EAN là mã code mà KH dùng để đắt hàng, trong khi tồn kho thì dùng “Mã vật tư”. Kiểu tham chiếu giống tắm đoạn luận vậy ạ.
2/ Chính xác như chưa nói là phải vậy, nhưng để tóm tắt bảng tính cháu chỉ tìm cần các thông tin như “Mã vật tư”, số lượng phải sr xuất của mỗi kho tương ứng là được.
3/ Mỗi “Mã vật tư” sẽ có một tên riêng, nhưng nhiều “Mã vật tư” có thể chỉ là một SP do cùng một mã EAN.
4/ Từ (3) kéo sang (4) là vậy đó ạ.
Nếu làm thủ công thì bạn làm thế nào? Ví dụ từng bước xem sao chứ giải thích kiểu này không rõ lắm.
Ví dụ:
Với mã hàng đặt: 8935036679994 (B7 sheet Sale)
-Bước 1: Làm gì?
-Bước 2:???
-Bước 3:???
....................
....................
Nếu gì gì thì làm sao sao ???
???
???
???
Kết quả cuối cùng là gì?

Sheet Sale, ít nhất bạn cũng có vài chục dòng kết quả đúng mà bạn đã kiểm chứng là đúng khi làm thủ công cho mọi người biết.
 
Upvote 0
Nếu làm thủ công thì bạn làm thế nào? Ví dụ từng bước xem sao chứ giải thích kiểu này không rõ lắm.
Ví dụ:
Với mã hàng đặt: 8935036679994 (B7 sheet Sale)
-Bước 1: Làm gì?
-Bước 2:???
-Bước 3:???
....................
....................
Nếu gì gì thì làm sao sao ???
???
???
???
Kết quả cuối cùng là gì?

Sheet Sale, ít nhất bạn cũng có vài chục dòng kết quả đúng mà bạn đã kiểm chứng là đúng khi làm thủ công cho mọi người biết.

Dạ, con cám ơn thầy đã quan tâm tới bài của con.
Con xin miêu tả lại như sau ạ.

Trường hợp 1 (áp dụng chung với EAN)

Sheet Data có hai mã quan trọng là "Mã vật tư" và "EAN" là các thuộc tính của sản phẩm, dùng để vlookup đến các sheet khác (TonKho, Sale)
Đặc điểm của sản phẩm:
+ Mỗi một SP có tên-giá (không thể Vlookup), gắn liền một Mã vật tư (MVT) và một EAN;
+ Các MVT khác nhau (giá-tên có sai lệch) nhưng EAN trùng nhau vẫn xem là một SP.
Ví dụ, KH khi KH đặt EAN là: 9786042074551 thì có thể xuất một trong hai MVT như dưới đây:


Mã vật tư

Tên vật tư

Giá bán

Năm xuất bản

Tủ sách

EAN

5162210520008​

Yu - Gi - Oh - Tập 8​

20000​

16​

1052​

9786042074551​

6182210520008​

Yu-Gi-Oh! Tập 8​

22000​

18​

1052​

9786042074551​

Từ EAN của KH đặt con phải chuyển sang MVT tương ứng số tồn khả thi của từng kho (sheet TonKho) để làm phiếu xuất hàng.
Khi xuất lại phải ưu tiên xuất hàng sản xuất trước, khi không đủ số lượng khách đặt mới xuất thêm năm mới. Biết rằng năm sx là "=mid(MVT,2,2)", như ví dụ trên, con phải xuất mã "5162210520008" trước vì nó sx năm 2016, mã còn lại sx năm 2018.
(các thủ tục được làm thủ công từ bước 1-bước 6), thầy xem file giúp con ạ.

Trường hợp 2 (một nhóm SP có EAN khác nhau nhưng là cùng một SP)

Việc xác định SP giống nhau được xác định như sau:
- Với "Mã vật tư", nhóm các sản phẩm có thứ tự "=mid(MVT,4,2)"=22 thì có thể căn cứ vào 8 ký tự sau "=right(MVT,8)" nếu trùng nhau là cùng một SP.
Như vậy, đối với nhóm SP này, khi vlookup EAN (tìm các MVT tương ứng) từ file đặt hàng sẽ không dò qua hết các giá trị tồn có thể có mà phải dò kết hợp với mã MX ("Right(MVT,8)") (thực hiện tại Bước 7)

Trường hợp 3 (Hạn mức tồn)
Trường hợp này thường được làm thủ công khi lấy hạn mức tồn, với số tồn không đáp ứng đủ sẽ bị loại khỏi danh sách tồn kho (dẫn đến một vài sản phẩm còn tồn ít nhưng không có cơ hội xuất hàng)

Con xin gửi file đã làm thủ công, mong thầy xem qua giúp con ạ.
 

File đính kèm

Upvote 0
Dạ, con cám ơn thầy đã quan tâm tới bài của con.
Con xin miêu tả lại như sau ạ.

Trường hợp 1 (áp dụng chung với EAN)

Sheet Data có hai mã quan trọng là "Mã vật tư" và "EAN" là các thuộc tính của sản phẩm, dùng để vlookup đến các sheet khác (TonKho, Sale)
Đặc điểm của sản phẩm:
+ Mỗi một SP có tên-giá (không thể Vlookup), gắn liền một Mã vật tư (MVT) và một EAN;
+ Các MVT khác nhau (giá-tên có sai lệch) nhưng EAN trùng nhau vẫn xem là một SP.
Ví dụ, KH khi KH đặt EAN là: 9786042074551 thì có thể xuất một trong hai MVT như dưới đây:

Mã vật tư

Tên vật tư

Giá bán

Năm xuất bản

Tủ sách

EAN


5162210520008​



Yu - Gi - Oh - Tập 8​



20000​



16​



1052​



9786042074551​



6182210520008​



Yu-Gi-Oh! Tập 8​



22000​



18​



1052​



9786042074551​

Từ EAN của KH đặt con phải chuyển sang MVT tương ứng số tồn khả thi của từng kho (sheet TonKho) để làm phiếu xuất hàng.

Khi xuất lại phải ưu tiên xuất hàng sản xuất trước, khi không đủ số lượng khách đặt mới xuất thêm năm mới. Biết rằng năm sx là "=mid(MVT,2,2)", như ví dụ trên, con phải xuất mã "5162210520008" trước vì nó sx năm 2016, mã còn lại sx năm 2018.
(các thủ tục được làm thủ công từ bước 1-bước 6), thầy xem file giúp con ạ.

Trường hợp 2 (một nhóm SP có EAN khác nhau nhưng là cùng một SP)

Việc xác định SP giống nhau được xác định như sau:
- Với "Mã vật tư", nhóm các sản phẩm có thứ tự "=mid(MVT,4,2)"=22 thì có thể căn cứ vào 8 ký tự sau "=right(MVT,8)" nếu trùng nhau là cùng một SP.
Như vậy, đối với nhóm SP này, khi vlookup EAN (tìm các MVT tương ứng) từ file đặt hàng sẽ không dò qua hết các giá trị tồn có thể có mà phải dò kết hợp với mã MX ("Right(MVT,8)") (thực hiện tại Bước 7)

Trường hợp 3 (Hạn mức tồn)
Trường hợp này thường được làm thủ công khi lấy hạn mức tồn, với số tồn không đáp ứng đủ sẽ bị loại khỏi danh sách tồn kho (dẫn đến một vài sản phẩm còn tồn ít nhưng không có cơ hội xuất hàng)

Con xin gửi file đã làm thủ công, mong thầy xem qua giúp con ạ.
Nhìn hoa mắt. Chắc phải viết code từng bước như bạn làm thủ công, khi được kết quả đúng mới hiểu được và "túm gọn" lại.
 
Upvote 0
Dạ, con cám ơn thầy!
Các bước 1,2,3,7 đã ok rồi ạ. Trong code con chưa thấy sort dữ liệu (năm sx cũ tới mới, và số lượng lớn tới nhỏ), vì liên quan đến hàm index sau này (bước 5,6), mà index, vlookup thì ưu tiên lấy số nào gặp trước từ trên xuống. Nếu thầy có cách nào khác nhưng vẫn lấy chính xác như yêu cầu thì không cần phải sort ạ.
Bây giờ các bước 5,6 con mới thấy đau đầu (mà hầu như đau đầu toàn tập thầy ạ).
Mong thầy giúp con!
 
Upvote 0
Dạ, con cám ơn thầy!
Các bước 1,2,3,7 đã ok rồi ạ. Trong code con chưa thấy sort dữ liệu (năm sx cũ tới mới, và số lượng lớn tới nhỏ), vì liên quan đến hàm index sau này (bước 5,6), mà index, vlookup thì ưu tiên lấy số nào gặp trước từ trên xuống. Nếu thầy có cách nào khác nhưng vẫn lấy chính xác như yêu cầu thì không cần phải sort ạ.
Bây giờ các bước 5,6 con mới thấy đau đầu (mà hầu như đau đầu toàn tập thầy ạ).
Mong thầy giúp con!
Lần 2.
Đúng là "đau đầu toàn tập", bạn xem lại file này, tôi chỉ giải quyết được trường hợp 1, những dòng nào thuộc trường hợp 2 bạn giải thích và cho kết quả xem, tôi chưa hiểu lắm.
 

File đính kèm

Upvote 0
Lần 2.
Đúng là "đau đầu toàn tập", bạn xem lại file này, tôi chỉ giải quyết được trường hợp 1, những dòng nào thuộc trường hợp 2 bạn giải thích và cho kết quả xem, tôi chưa hiểu lắm.

Thưa thầy,
GPE lần 2 quá tuyệt, con sẽ ngâm cứu code này ạ.
Trường hợp hai con xin diễn giải như sau, thầy xem giúp con.

Diễn giải:

- Trích lọc các SP từ sheet "Sale" khi dùng EAN (KH dùng đê đặt hàng) để dò tìm tồn kho nhưng không có hoặc số lượng tồn bằng 0

- Nhưng ma8 của các SP này được trình bày như trên (cột G)

- Nếu dùng ma8 này dò ngược lại sheet "TonKho" thì một số SP này có đủ số lượng để xuất hàng

- Nguyên nhân là do một sản phẩm nhưng có nhiều EAN khác nhau. Khi KH dùng EAN để đặt hàng sẽ có 02 trường hợp xảy ra:

Trường hợp 1:

Dò trực tiếp bằng EAN, và SP có lượng tồn kho đủ để xuất cho khách

Đã giải quyết bằng code GPE

Trường hợp 2:

Nếu dò trực tiếp bằng EAN nhưng không xuất được hàng cho khách thì tiếp tục có 02 trường hợp:

+ Số tồn bằng 0 (như trường hợp hết hàng như trên)

+ Số tồn lớn hơn 0 (phải dò qua ma8 mới phát hiện được hàng tồn)

Như vậy, muốn khẳng định số tồn SP nào đó (thuộc nhóm m8) có bằng 0 hay không, phải dò qua hai thủ tục là: dò bằng EAN, và dò bằng ma8

GPE đã giải quyết rất tốt TH1 _EAN rồi, giải quyết trường hợp mã m8 nữa là quá tuyệt ạ.
 

File đính kèm

  • EAN_khac_Nhung_m8_giong_nhau.png
    EAN_khac_Nhung_m8_giong_nhau.png
    33.4 KB · Đọc: 9
  • EAN_khac_Nhung_m8_giong_nhau2.png
    EAN_khac_Nhung_m8_giong_nhau2.png
    56.3 KB · Đọc: 8
  • XuatHang_HCM_2.xlsb
    XuatHang_HCM_2.xlsb
    1.1 MB · Đọc: 3
Upvote 0
Thưa thầy,
GPE lần 2 quá tuyệt, con sẽ ngâm cứu code này ạ.
Trường hợp hai con xin diễn giải như sau, thầy xem giúp con.

Diễn giải:

- Trích lọc các SP từ sheet "Sale" khi dùng EAN (KH dùng đê đặt hàng) để dò tìm tồn kho nhưng không có hoặc số lượng tồn bằng 0

- Nhưng ma8 của các SP này được trình bày như trên (cột G)

- Nếu dùng ma8 này dò ngược lại sheet "TonKho" thì một số SP này có đủ số lượng để xuất hàng

- Nguyên nhân là do một sản phẩm nhưng có nhiều EAN khác nhau. Khi KH dùng EAN để đặt hàng sẽ có 02 trường hợp xảy ra:

Trường hợp 1:

Dò trực tiếp bằng EAN, và SP có lượng tồn kho đủ để xuất cho khách

Đã giải quyết bằng code GPE

Trường hợp 2:

Nếu dò trực tiếp bằng EAN nhưng không xuất được hàng cho khách thì tiếp tục có 02 trường hợp:

+ Số tồn bằng 0 (như trường hợp hết hàng như trên)

+ Số tồn lớn hơn 0 (phải dò qua ma8 mới phát hiện được hàng tồn)

Như vậy, muốn khẳng định số tồn SP nào đó (thuộc nhóm m8) có bằng 0 hay không, phải dò qua hai thủ tục là: dò bằng EAN, và dò bằng ma8

GPE đã giải quyết rất tốt TH1 _EAN rồi, giải quyết trường hợp mã m8 nữa là quá tuyệt ạ.

- Dò qua dò lại "tanh bành té bẹ" luôn.
- Tạo thêm vài cột phụ cho sheet TonKho cho dễ viết code.
- Đặt hàng 623, xuất hàng chỉ có 614, chẳng biết sai lệch ở đâu, bạn tự xem lại nhé.
- Bảng kết quả phải "chưng tè lè ra" mới kiểm tra được.
 

File đính kèm

Upvote 0
Thầy ơi, quá tuyệt vời!
Gần như đạt 99% nhu cầu của con đặt ra từ đầu.
Con đã chạy và thử kiểm tra thì phát hiện một chút sai nhầm nhỏ của hai SP (con tô màu xanh của các sheet liên quan), thầy xem giúp con ạ.
Cụ thể: EAN của hai SP này thì đúng nhưng m8 bị sai nên kéo theo "Mã vật tư" cũng sai ạ.
Mong thầy xem giúp con!
 

File đính kèm

  • TH2_Ton_bang0_Boqua.png
    TH2_Ton_bang0_Boqua.png
    21 KB · Đọc: 14
  • TH2_Ton_bang0_Sai_ma8.png
    TH2_Ton_bang0_Sai_ma8.png
    17.3 KB · Đọc: 13
  • XuatHang_HCM_3.xlsb
    XuatHang_HCM_3.xlsb
    1.1 MB · Đọc: 3
Upvote 0
Thầy ơi, quá tuyệt vời!
Gần như đạt 99% nhu cầu của con đặt ra từ đầu.
Con đã chạy và thử kiểm tra thì phát hiện một chút sai nhầm nhỏ của hai SP (con tô màu xanh của các sheet liên quan), thầy xem giúp con ạ.
Cụ thể: EAN của hai SP này thì đúng nhưng m8 bị sai nên kéo theo "Mã vật tư" cũng sai ạ.
Mong thầy xem giúp con!
Đúng là "nát cái đầu".
Chỉnh tới chỉnh lui cái Sub thành một "đống bầy nhầy", chạy "ngắc ngứ" luôn.
Sheet TonKho có cần phải để mấy ngàn dòng mà không có số liệu tồn không? Không cần thiết thì xóa bỏ cho nhẹ nhàng trong tìm kiếm.
Bạn kiểm tra lại xem sao.
 

File đính kèm

Upvote 0
Đúng là "nát cái đầu".
Chỉnh tới chỉnh lui cái Sub thành một "đống bầy nhầy", chạy "ngắc ngứ" luôn.
Sheet TonKho có cần phải để mấy ngàn dòng mà không có số liệu tồn không? Không cần thiết thì xóa bỏ cho nhẹ nhàng trong tìm kiếm.
Bạn kiểm tra lại xem sao.
Thầy ơi,
Có nút nào trên diễn đàn cho mình thả tim nhiều lần không thầy, chứ con thấy mắt nổi hình trái tim chưa lột tả hết cảm xúc của con!
 
Upvote 0
Đúng là "nát cái đầu".
Chỉnh tới chỉnh lui cái Sub thành một "đống bầy nhầy", chạy "ngắc ngứ" luôn.
Sheet TonKho có cần phải để mấy ngàn dòng mà không có số liệu tồn không? Không cần thiết thì xóa bỏ cho nhẹ nhàng trong tìm kiếm.
Bạn kiểm tra lại xem sao.
Thầy ơi,
Mục tiêu ban đầu đã Ok rồi ạ.
Nay con muốn phát triển thêm một tí, mong thầy giúp ạ.
1/ Sau khi có được số lượng xuất bán (theo yêu cầu KH), con muốn làm một code kiểm tra tựa nào không đủ hàng xuất, hoặc không có hàng xuất số với yêu cầu của KH (để xây dựng kế hoạch sản xuất). Với code này, các SP hết hàng sẽ được tổng hợp tại một sheet khác (sau khi nhấn nhút).
2/ Các bài trước con bỏ qua giá, nay nếu thêm giá vào để so sánh chênh lệch giữa giá khách đặt và giá xuất bán. (Tại cột ĐVT của khách con thay bằng giá SP)
Mong thầy gỡ rối ạ.
 
Upvote 0
Thầy ơi,
Mục tiêu ban đầu đã Ok rồi ạ.
Nay con muốn phát triển thêm một tí, mong thầy giúp ạ.
1/ Sau khi có được số lượng xuất bán (theo yêu cầu KH), con muốn làm một code kiểm tra tựa nào không đủ hàng xuất, hoặc không có hàng xuất số với yêu cầu của KH (để xây dựng kế hoạch sản xuất). Với code này, các SP hết hàng sẽ được tổng hợp tại một sheet khác (sau khi nhấn nhút).
2/ Các bài trước con bỏ qua giá, nay nếu thêm giá vào để so sánh chênh lệch giữa giá khách đặt và giá xuất bán. (Tại cột ĐVT của khách con thay bằng giá SP)
Mong thầy gỡ rối ạ.
Đưa file có vài chục dòng kết quả mẫu lên đi.
 
Upvote 0
Web KT

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

Back
Top Bottom