Đồng bộ mã hàng hoá giữa các Sheets (1 người xem)

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

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

cantl

!!! Giải thoát !!!
Thành viên bị đình chỉ hoạt động
Tham gia
6/8/08
Bài viết
1,815
Được thích
1,163
Giới tính
Nam
Các bác cho em hỏi cái món này thì dùng công cụ gì có thể làm được ạ?

Em thắc mắc ở chỗ ngược lại ấy.

1705581568893.png
 
Dữ liệu có nhiều không, ít quá thì làm thủ công thôi, còn nhiều thì gửi file lên để nghiên cứu xem sao nhé.
Đã có dữ liệu đâu, lúc sửa tên hàng hóa bài sữa chua, tớ mới thắc mắc có công cụ nào trong excel có thể làm được cái thay đổi hàng loạt này không ấy?
Hiện nếu làm thì tớ dùng Ctrl+H, nhưng không rõ excel đời mới hoặc đời cũ có lệnh nào tự động được không?
 
Đã có dữ liệu đâu, lúc sửa tên hàng hóa bài sữa chua, tớ mới thắc mắc có công cụ nào trong excel có thể làm được cái thay đổi hàng loạt này không ấy?
Hiện nếu làm thì tớ dùng Ctrl+H, nhưng không rõ excel đời mới hoặc đời cũ có lệnh nào tự động được không?
Dùng hàm thay thế bình thường thôi mà.
 
Có thể hình dung thế này: mã tạm xem như là 1 phần tử dict, hễ thay đổi ở đâu là nó đồng loạt thay hết trong file, các sheets luôn.

Vậy, ngoài VBA ra thì excel có công cụ nào sẵn có mà làm được việc này không? Đời mới và đời cũ, để em xem xét nâng cấp 365 hoặc vẫn free 2021.
 
Có thể hình dung thế này: mã tạm xem như là 1 phần tử dict, hễ thay đổi ở đâu là nó đồng loạt thay hết trong file, các sheets luôn.

Vậy, ngoài VBA ra thì excel có công cụ nào sẵn có mà làm được việc này không? Đời mới và đời cũ, để em xem xét nâng cấp 365 hoặc vẫn free 2021.
Chưa hiểu ý lắm, nhưng có phải là thế này không? Thay đổi 1 ô các ô có mã giống với ô được thay đổi cũng đồng loạt thay đổi theo.
Bạn @ cantl có thể tham khảo.
Tác giả Code của bài này tôi không nhớ, chỉ là chôm được trên diễn đàn và lưu lại thôi.
 

File đính kèm

Chưa hiểu ý lắm, nhưng có phải là thế này không? Thay đổi 1 ô các ô có mã giống với ô được thay đổi cũng đồng loạt thay đổi theo.
Bạn @ cantl có thể tham khảo.
Tác giả Code của bài này tôi không nhớ, chỉ là chôm được trên diễn đàn và lưu lại thôi.
File này có giống yêu cầu ở bài này đâu bạn. Mà thớt đang cần công cụ có sẵn của Excel, VBA chắc thớt có rồi.
 
Khi xem bài bạn Tuấn làm về sữa chua thì thế này bác ạ:
- Công ty chỉ bán mỗi sữa chua. Vô lý: nên em định đặt mã SC1, ... là mã sản phẩm.
- Sau em lại để ý có ngày hết hạn sử dụng từng lô: nên em sửa: SC1-241202.
- Nhưng sau đó, giả sửa bán thêm sữa cam chẳng hạn: em sửa mã trên thành: SCU1-241202, để sữa cam có 3 ký tự: SCA1-xxxxxx.

Nếu có 50 mã sản phẩm và đã nhập nhiều sheet thì ngày nào đó muốn thay đổi quy tắc đánh mã sẽ khó khăn.
Nếu em đã có danh mục 50 mã rồi, em chỉ cần nhập ra cột tạm, đánh lại mã chuẩn, rồi paste lại vào danh mục này, tự động các sheet khác hiểu được và thay mã theo.

Bác Thắng hiểu ý em, VBA em thì cũng chưa có, viết thì chắc em mò tầm 5, 7 ngày thì cũng ra được sơ sơ.


Vậy nên em hỏi excel đời mới có cách không ạ?
 
Khi xem bài bạn Tuấn làm về sữa chua thì thế này bác ạ:
- Công ty chỉ bán mỗi sữa chua. Vô lý: nên em định đặt mã SC1, ... là mã sản phẩm.
- Sau em lại để ý có ngày hết hạn sử dụng từng lô: nên em sửa: SC1-241202.
- Nhưng sau đó, giả sửa bán thêm sữa cam chẳng hạn: em sửa mã trên thành: SCU1-241202, để sữa cam có 3 ký tự: SCA1-xxxxxx.
Không ai làm như vậy cả. Tách ra mã SP và mã lot, mỗi mã lot có thông tin ngày nhập, mặt hàng, ngày SX, ngày hết hạn. Một lần nhập 10 mặt hàng thì chỉ 1 mã lot.
Data chính liên kết 2 mã đó để lấy ngày hết hạn xài khi cần.

Vụ này tôi nói lâu rồi. Nếu không té ra có mỗi mặt hàng SC mà 1 năm nhập 100 lần ra 100 mã hàng, 100 mặt hàng ra 10 ngàn mã. Liệu có tính tồn cuối tháng của riêng SC không? Vì nó là tồn của vài chục cho đến hàng trăm mã con? Hay là bảng tồn kho cả trăm ngàn dòng, in báo cáo dầy cả thước?
 
@Thớt:
Một quả trứng mà 2 gà mái cùng nhào nặn, cùng đẻ thì nó ra quả trứng gì.
Quản lý tập trung, lập một bảng dữ liệu gốc, các bảng khác tham chiếu từ đó.
 
Vậy em sẽ tách ra mã lot và mã hàng riêng.
Mã lot giả sử chốt cứng: 241202-1.
Bây giờ em sửa mã hàng SC1-241202 thành SC1.

Vậy 5, 7 sheet liên quan có mã SC1-241202 phải tự đổi thành SC1. Excel ngoài sự kiện change thì có công cụ nào mới có thể đồng bộ được không ạ?

@Thớt:
Một quả trứng mà 2 gà mái cùng nhào nặn.
Hiện đúng là dạng này, bỏ qua việc nó thành gì, tớ muốn hỏi ngoài sự kiện VBA thì có cách nào excel có sẵn không ấy?
 
Bạn xử lý sự kiện change như thế nào hay vậy?
Như bác Thắng nói, đó đang là ý tưởng. Em chỉ đang nghĩ đặt tạm giá trị trước khi thay đổi, so sánh với giá trị sau khi thay đổi, nếu khác thì cho thay hàng loạt sheet.

Để tối em thử xem sao, hình như khó ở đoạn enable, disable thì phải.
 
Lần chỉnh sửa cuối:
@cantl về đội với anh nha. Chúng ta chỉ toàn là lên ý tưởng và từ từ nhất bước thôi
 
Như bác Thắng nói, đó đang là ý tưởng. Em chỉ đang nghĩ đặt tạm giá trị trước khi thay đổi, so sánh với giá trị sau khi thay đổi, nếu khác thì cho thay hàng loạt sheet.

Liệu sẽ vướng lỗi gì bác ạ?
Bạn đã bao giờ nghe cụm từ "Audit Trail" chưa?
Thay đổi tùm lum mà không ghi lại thì biết trước đó nó là cái gì?
 
Vậy em sẽ tách ra mã lot và mã hàng riêng.
Mã lot giả sử chốt cứng: 241202-1.
Bây giờ em sửa mã hàng SC1-241202 thành SC1
Tách ra trước khi có dữ liệu mới gọi là là tổ chức. Có dữ liệu rồi mới tách thì gọi là chữa, nhưng vẫn phải tạo bảng mã lot cho đầy đủ với dữ liệu hiện có. Bảng mã lot này phải bảo đảm đủ và có liên kết với bảng mã SP (1 lần nhập là 1 lot, 1 lot có 1 hoặc nhiều mã hàng)
Lúc đó chữa thì chỉ sửa 1 lần xuôi, (bằng cách tạo hẳn 2 cột mới trên dữ liệu tất cả sheet có liên quan), không có lần ngược. Chứ lại để cháy mãi để chữa mãi sao?

Cụ thể:
- mã hiện tại gồm 2 thành phần, code sẽ tách ra thành 2 phần bỏ vào 2 cột mới. Bảo đảm rằng mỗi thành phần đã có trên 1 trong 2 bảng mã.
- Chạy qua tất cả sheet
- Xóa code. Vì sau này phải bảo đảm không dùng đến nó nữa.
 
Cái này em mới tìm hiểu. Gọi là dấu vết thay đổi hoặc tương tự, mà nó giống với kỹ thuật blockchain hay bitcoin hơn. Nếu mà nghĩ ra được cách lưu các thay đổi sau mỗi lần sửa thì quá tốt, với những dự án lớn sau này.

Hiện em đang lăn tăn chỗ đổi mã số, vì sẽ có lúc cần bổ sung thông tin và mình phải đặt lại mã sao cho nhìn vào dễ nhận ra ngay.

Riêng về Audit Trail: cái dấu vết này chắc phù hợp với món lưu trữ trường kỳ như bệnh viện, hợp đồng, ... mang tính thời gian, hơi cao cấp ấy bác.

Chứ lại để cháy mãi để chữa mãi sao
Theo em, có thể phải mãi, hoặc sau thời gian dài thì sẽ không cần nữa. Khi mà đã làm nhiều lần, trăm hay tay quen.

Giờ đang xét việc chưa quen tay, thì có thể em tạo Sub, cứ lúc nào định đổi thì chạy 1 lần cũng là 1 cách.


Vậy là excel không có công cụ ạ, để em ngâm cứu change xem sao vậy, không change được thì Sub thôi.
 
Cái này em mới tìm hiểu. Gọi là dấu vết thay đổi hoặc tương tự, mà nó giống với kỹ thuật blockchain hay bitcoin hơn. Nếu mà nghĩ ra được cách lưu các thay đổi sau mỗi lần sửa thì quá tốt, với những dự án lớn sau này.

Riêng về Audit Trail: cái dấu vết này chắc phù hợp với món lưu trữ trường kỳ như bệnh viện, hợp đồng, ... mang tính thời gian, hơi cao cấp ấy bác.
Hồi trước tôi cũng có làm cái vụ Audit Trail này để lưu vào file Log khi có người thay đổi dữ liệu. Nó chỉ lưu thông tin đơn giản thôi.

CfbPXZr.png
 
Cái này em mới tìm hiểu. Gọi là dấu vết thay đổi hoặc tương tự, mà nó giống với kỹ thuật blockchain hay bitcoin hơn. Nếu mà nghĩ ra được cách lưu các thay đổi sau mỗi lần sửa thì quá tốt, với những dự án lớn sau này.
...
Suy nghĩ xa vời quá.
 
@Chủ bài đăng: Sao không tìm cách khác, mà phải đi sửa mã búa xua làm vậy(!)
Nếu là mình thì mã HH chỉ là : ABCDNTN; Trong đó
A - mã phân loại hàng
B- Nhóm hàng
CD - mã đại diện cho hàng hóa;
N (trước T) chỉ năm nhập
T - Tháng nhập; A chỉ ra nhập tháng 10
N Ngày nhập B ứng với ngày 11,. . . .
Vì là hàng rẻ tiền mau hỏng nên vài ba năm chuyển sang tạo file mới có sao lưu & hủy file trước;
 
@Chủ bài đăng: Sao không tìm cách khác, mà phải đi sửa mã búa xua làm vậy(!)
Nếu là mình thì mã HH chỉ là : ABCDNTN; Trong đó
A - mã phân loại hàng
B- Nhóm hàng
CD - mã đại diện cho hàng hóa;
N (trước T) chỉ năm nhập
T - Tháng nhập; A chỉ ra nhập tháng 10
N Ngày nhập B ứng với ngày 11,. . . .
Vì là hàng rẻ tiền mau hỏng nên vài ba năm chuyển sang tạo file mới có sao lưu & hủy file trước;
Chủ topic thích đùa thôi, nguyên tắc cơ bản của quản trị cơ sở dữ liệu là không dược thay đổi, sửa mã (khóa chính) vì với sơ sót nhỏ là phải vứt toàn bộ file vào sọt rác.
 
Lần chỉnh sửa cuối:
Nếu em siêu thì em nghĩ được hết các khả năng thì quy tắc mã sẽ giữ được duy nhất và đồng bộ 1 lần, nhưng lần 1 dữ liệu ít em đặt thế này, sau dữ liệu thêm thông tin, em lại phải đặt kiểu khác. n lần thì mã như bòng bong.
Em với code chỉ là sở thích thôi chứ không phải chuyên nên sai đâu sửa đấy bác ạ.

Ây dà, em chỉ đùa trong bài người khác thì có bác ạ, còn bài em đăng thì đàng hoàng mà.

Ví dụ trong mấy phần mềm dự toán, thay đổi mã vật liệu, tên vật liệu thì có thể thay được 2, 3 chỗ và mấy chỗ khác chạy theo.
Em tò mò excel có làm được không thôi.

Sự kiện change thì em cũng thử, nó cũng chạy sơ sơ theo ý (mỗi lần change chỉ thay 1 ô chứ không dán cả vùng được), còn phải chỉnh chút chỗ nhập mã mới vào ô chưa có dữ liệu thì bị lỗi.

Bác ongke có thay đổi điển hình là ID 1 -> 11 giống với cách nghĩ của em ấy bác.
Có thể em sẽ làm 1 sheet để ghi chú dấu vết này, càng chi tiết càng rõ.
Em có 2 tính chất đá bôm bốp nhau cùng tồn tại trong bản thân. Đó là lười + cầu toàn. Do đó rất thích tối ưu hóa. Biết là mình không đủ sức, nhưng thích thì cứ thích thôi.
 
Bạn xử lý sự kiện change như thế nào hay vậy?
Bác xem qua clip này giúp em (20s thôi). Với dữ liệu ít thì nó đang như vậy, nhưng nếu nhiều thì em không biết sẽ có lỗi gì nữa.
Bác @huuthang_bd xem giúp em tí.

Em đang mò nốt lỗi khi nhập dữ liệu mới nó không theo ý mình.
 
Chủ topic thích đùa thôi, nguyên tắc cơ bản của quản trị cơ sở dữ liệu là không dược thay đổi, sửa mã (khóa chính) vì với sơ sót nhỏ là phải vứt toàn bộ file vào sọt rác.
Thớt có nói rõ đây chỉ là ý tưởng, tức "sáng kiến"
Một sáng kiến loại lẻ tẻ này có hai giai đoạn. Giai đoạn thực hiện và giai đoạn áp dụng.
Vì lý do chính là học code cho nên thớt chỉ muốn phần "thực hiện". Phần "áp dụng" hoàn toàn mù tịt.

Cũng như nghiên cứu ra giống gà đẻ 10 trứng/ngày. Gần đến đích rồi vẫn chưa nhận ra con gà ấy bự bằng con heo 1 tạ.
 
Hiện em đang lăn tăn chỗ đổi mã số, vì sẽ có lúc cần bổ sung thông tin và mình phải đặt lại mã sao cho nhìn vào dễ nhận ra ngay.
Việc tạo mã cần có 1 bộ quy tắc (dài khoảng 3 trang A4), 1 quy trình (sơ đồ ít nhất 1 trang, giải thích quy trình 4 trang), 1 bộ định nghĩa thành phần mã.

Bộ định nghĩa thành phần mã phải lường trước tất cả những phát sinh cho ít nhất 5 năm (thời hiệu cho phép hủy chứng từ báo cáo), hoặc 10 năm (đối với báo cáo quản trị). Thêm 1 thông tin thì nó phải thuộc 1 trong các thành phần đã có, và chỉ định nghĩa thêm cho 1 thành phần đó thôi.
Thí dụ bảng định nghĩa thép xây dựng:

1705812134305.png

Nếu quan tâm đến chỉ tiêu độ cứng thép (1 trong các chỉ tiêu chất lượng) thì sẽ có thành phần thứ 6.

Tùy theo mức độ mở rộng của từng thành phần mà cho nó 1, 2 hoặc 3 ký tự. Nếu sử dụng cả ký tự số và ký tự chữ cái thì 2 ký tự cho phép định nghĩa lên tới 1296 mã con, 3 ký tự sẽ là 46.655 mã con.
Bảng 1, bảng 2, ... là các mã con và có thể định nghĩa thêm vào đó. Các bảng này sẽ có quan hệ phụ thuộc sao cho nếu chọn thép tấm chỉ chọn tiết diện là dộ dầy, kích thước là dài x rộng. Nếu chọn tròn chỉ chọn tiết diện là đường kính, kích thước là chiều dài.

Thậm chí tiết diện L, V cũng có thể tách ra 3 thành phần cấp 2.

Đâu phải đồ chơi đâu mà đụng là sửa, sửa mãi tới 5 năm10 năm vẫn còn quay lại sửa quá khứ.
 
Bác xem qua clip này giúp em (20s thôi). Với dữ liệu ít thì nó đang như vậy, nhưng nếu nhiều thì em không biết sẽ có lỗi gì nữa.
Bác @huuthang_bd xem giúp em tí.

Em đang mò nốt lỗi khi nhập dữ liệu mới nó không theo ý mình.
Cái clip đó thì có gì để xem bạn? :D
 
Bảng này thì quá chuẩn luôn, em sẽ vận dụng nó sau này.


Các bác và bác @HieuCD , bác @huuthang_bd ạ:
Đây là sự kiện change em sưu tập và chế biến, thay thế đồng bộ trong 1 file, hiện đang thử áp dụng cho các cột màu vàng.
Thay đổi nội dung ô (bất kỳ sheet) (nhưng từng ô, không paste vùng vào được) là toàn bộ các ô nào đang giống nó đều thay đổi theo (toàn bộ các sheet và sheet chứa nó).

Quan trọng, phải như ảnh thì sự kiện mới có hiệu lực workbook thay vì chỉ activesheet:

1705842817782.png
 

File đính kèm

Nếu là mình thì mã HH chỉ là : ABCDNTN
Ngày tháng năm nhập (và cả ngày tháng năm hết hạn sử dụng) không bao giờ cho vào mã hàng. Nếu không thì cùng 1 mặt hàng như nhau có cả trăm cả ngàn mã.
Nhóm hàng phải là 1 bảng riêng và có quan hệ là cha con với bảng mã mặt hàng.
Thậm chí thương mại bán lẻ còn 1 bảng cao hơn đó là ngành hàng: thức uống, thực phẩm, điện máy, ... Một ngành hàng gồm nhiều nhóm chẳng hạn thức uống gồm sữa, bia, nước có gaz, thực phẩm gồm tươi sống, đồ hộp, rau củ, ...
Vì là hàng rẻ tiền mau hỏng nên vài ba năm chuyển sang tạo file mới có sao lưu & hủy file trước;
Bảng mã không bao giờ hủy. Hủy rồi khi cần truy xuất lịch sử giao dịch 5 năm trước thì dữ liệu đã bị hỏng mất rồi. Tương tự là không thể so sánh doanh số từng năm của 5 năm liên tiếp, và nhiều những báo cáo quản trị khác.
 
toàn bộ các ô nào đang giống nó đều thay đổi theo
Chưa nói đến các vấn đề khác, nếu lỡ tay xóa 1 ô thì chuyện gì sẽ xảy ra? Hoặc nặng hơn là đang có A và B, muốn sửa A thành C nhưng sửa nhầm A thành B sau đó sửa lại thành C thì hết cứu luôn.
 
Chưa nói đến các vấn đề khác, nếu lỡ tay xóa 1 ô thì chuyện gì sẽ xảy ra? Hoặc nặng hơn là đang có A và B, muốn sửa A thành C nhưng sửa nhầm A thành B sau đó sửa lại thành C thì hết cứu luôn.
Thì ở trên tôi đã nhắc hai điều:
1. Bài này cần biết về Audit Trail. Đơn giản những thớt lại đi nghĩ đến những từ dao to búa lớn đâu đâu.
2. Bài này quy trình áp dụng quan trọng hơn code kiếc thực hiện. Dân chuyên nghiệp sẽ tưởng tượng là mình đã có phần mềm, tức là viết một cái prototype (mẫu) đơn giản rồi xem nó làm việc ra sao trong hệ thống của mình.
 
Em thêm điều kiện không cho xóa là được bác ạ (em đã thử) hoặc lặp qua từng sheet rồi cho xóa hết (nếu mong muốn là xóa dòng). Cái này đúng là em chưa nghĩ đến.

Còn A B C như bác nói thì lúc đầu em cũng đã nghĩ, mong muốn code sẽ có list lựa chọn thay thế đúng từ cần thay. Hoặc thông báo cho người dùng mã đã tồn tại. Cái này em chưa code được nhưng em nghĩ lặp qua các sheet, liệt kê cảnh báo thì không phải quá khó (nếu biết code).

Loại này thì chuyên rồi, em cũng đã dùng thử mấy phần mềm mà nó có thể hiệu chỉnh lung tung chỗ mà vẫn đồng bộ rồi. Nhưng nó có vị trí lưu riêng được quản lý bởi phần mềm. Còn em nói đang bên excel, và dữ liệu nó nằm trên bảng tính chứ có kho cất giữ đâu. Cái Audit Trail bác nói thì phần mềm nó phải có file gì gì gì .data hay chấm gì đó đi kèm rồi.

Bảng mã bác Mỹ gợi ý thì nếu lường trước hết các khả năng thì chuẩn luôn, nhưng giả sử sau này phát sinh thì vẫn phải thay đổi.
Bác code siêu thì có bảng mã để tra, còn em thì làm sao nhìn vào mã nhận biết ra đủ thông tin luôn thì thích hơn, thậm chí nếu may mắn, thay vì mã thì đặt cái QR ở đấy (QR thì số và chữ nó dài cả cây số ấy), quét cái nó hiện ra cái bảng của bác cũng tốt.
 
Bảng mã bác Mỹ gợi ý thì nếu lường trước hết các khả năng thì chuẩn luôn, nhưng giả sử sau này phát sinh thì vẫn phải thay đổi.
Đã lường trước các khả năng (thành phần) thì làm gì có chuyện phát sinh thêm thành phần? Chỉ có phát sinh thêm chi tiết, và chi tiết thì đã cho phép khai báo thêm còn gì?

Có biết "cán bộ quản lý" cấp nào, trình độ và kính nghiệm cỡ nào mới được đưa vào "Ban quản lý dự án tạo mã" họp hành cả tháng để viết ra "Bộ thuộc tính sản phẩm" không? Làm gì có chuyện phát sinh, mà phát sinh thêm thành phần là lôi ra kỷ luật mấy ông đó ngay. Trong thí dụ mẫu trên, nếu quan tâm đến độ cứng thép, hoặc tiêu chuẩn thép, là phải thêm vào bộ thuộc tính ngay từ đầu. Cán bộ quản lý phải biết phải quan tâm cái gì và đưa vào.

Ghi chú:
- "Bộ thuộc tính sản phẩm" của 1 sản phẩm (hoặc các sản phẩm cùng loại) gồm các thành phần của mã sau này
- Sản phẩm khác nhau có thể có những thuộc tính khác nhau chẳng hạn như thức uống có cồn thì có nồng độ alcohol, nhóm khác không có.
- Nhóm sản phẩm khác nhau có thể có số lượng thành phần trong bộ thuộc tính khác nhau, thành phần có thể có số ký tự khác nhau sinh ra độ dài mã cũng khác nhau.
 
Bảng mã chuẩn thì sau vậy. Giờ em đang cố xử lý A B C thay đổi thế nào đây. Chỉ có kiểm tra trước xem có trùng không thì được, chứ ghép lại 1 code change thì không đá này thì đá kia.
 

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

Back
Top Bottom