Tự động tách dải serial thành các dòng liên tục

Liên hệ QC

teutamteu

Thành viên hoạt động
Tham gia
11/9/07
Bài viết
144
Được thích
13
Chào các anh/chị/em
Hiện công ty mình đang có chiến dịch đổi hàng lỗi sang hàng mới cho kênh.
GĐ muốn kiểm soát đến từng serial đổi cho kênh với yêu cầu như sau:
Hàng ngày các đội báo cáo serial hàng lỗi về trong sheet "NGÀY", tuy nhiên nếu kênh còn tồn nhiều hàng thì serial chỉ cần nhập "Từ serial" và "đến Serial" (VD từ 576050 đến 576059 - tổng là 1 sp)
Nhiệm vụ của NV giám sát là phải tách từng serial trong dải 10 sp nêu trên thành từng dòng và vlookup với 1 bảng tổng toàn bộ sản phẩm bị lỗi để đánh dấu nó đã được đổi và loại khỏi danh sách cần đổi.

Hiện mình chỉ làm bằng cách copy cái serial đầu rồi +1 đến serial cuổi, cách làm này rất mất thời gian và dễ nhầm.
A/c/e xem có công thức hay script nào hỗ trợ nhập serial đầu và cuối sau đó nó tự tách thành từng dòng như sheet "Serial đã đổi"
Công việc này mình sẽ phải làm đến hết 31/1/2014. Rất mong các cao thủ giúp đỡ để tránh nhầm lẫn trong công việc.
Cám ơn Anh/chị/em giúp đỡ.
 

File đính kèm

  • Tach dai serial thanh tung dong.xlsx
    20.9 KB · Đọc: 30
Qui luật để ra bảng kết quả của bạn là sao vậy?, Tại sao lại là seri 576041 đứng trước mà không phải là 576060 và số tiếp theo là 289380 mà không phải là 576044??????? (Chưa hiểu lắm)
 
Để mình trả lời thay cho tác giả cho:

Qui luật để ra bảng kết quả của bạn là sao vậy?, Tại sao lại là seri 576041 đứng trước mà không phải là 576060 và số tiếp theo là 289380 mà không phải là 576044??????? (Chưa hiểu lắm)

Căn cứ vô cột 'G'; Hết 1 rồi đến 2,. . . cho đến MAX

Mà MAX của cột này là 10; Nên 10 anh đó sẽ đội sổ!

/(ha, Kha, kha,. . . . .


Chúc buỗi sáng tốt lành!
 
Bạn xem trong file đính kèm

}}}}} }}}}} }}}}}

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 

File đính kèm

  • gpeFIND.rar
    16 KB · Đọc: 49
Qui luật để ra bảng kết quả của bạn là sao vậy?, Tại sao lại là seri 576041 đứng trước mà không phải là 576060 và số tiếp theo là 289380 mà không phải là 576044??????? (Chưa hiểu lắm)
Chào bạn.
Do bên mình có đến 53 nhóm đi đổi hàng lỗi cho kênh nên khi báo cáo về mình tập hợp lại từ các đơn vị riêng lẻ, đơn vị nào báo trước copy - paste trước do đó k bao giờ liền dải trong báo cáo được bạn ạ.
Nếu tách được sau đó sắp xếp lại 1 click chuột là ok hết.
 

Chào bạn
Về số lượng và serial thì chuẩn rồi tuy nhiên về khu vực thì file chi tiết từ dòng B58 đến B66 không phải là BAT mà lại là chữ "khu vực"
với lại làm sao để chỉnh sửa xem được công thức của nút run vì mình còn làm nhiều lắm đến 53 nhóm cơ, không xem thì k hiểu như nào để áp dụng, hjc
Mình thử copy toàn bộ dữ liệu vào bảng chạy nó báo END -Debug... luôn.

cám ơn bạn
 
Lần chỉnh sửa cuối:
Chào các anh/chị/em
Hiện công ty mình đang có chiến dịch đổi hàng lỗi sang hàng mới cho kênh.
GĐ muốn kiểm soát đến từng serial đổi cho kênh với yêu cầu như sau:
Hàng ngày các đội báo cáo serial hàng lỗi về trong sheet "NGÀY", tuy nhiên nếu kênh còn tồn nhiều hàng thì serial chỉ cần nhập "Từ serial" và "đến Serial" (VD từ 576050 đến 576059 - tổng là 1 sp)
Nhiệm vụ của NV giám sát là phải tách từng serial trong dải 10 sp nêu trên thành từng dòng và vlookup với 1 bảng tổng toàn bộ sản phẩm bị lỗi để đánh dấu nó đã được đổi và loại khỏi danh sách cần đổi.

Hiện mình chỉ làm bằng cách copy cái serial đầu rồi +1 đến serial cuổi, cách làm này rất mất thời gian và dễ nhầm.
A/c/e xem có công thức hay script nào hỗ trợ nhập serial đầu và cuối sau đó nó tự tách thành từng dòng như sheet "Serial đã đổi"
Công việc này mình sẽ phải làm đến hết 31/1/2014. Rất mong các cao thủ giúp đỡ để tránh nhầm lẫn trong công việc.
Cám ơn Anh/chị/em giúp đỡ.
Thử code này cho vui
*** Chú ý là mình khai báo tới dòng 65000 thôi. Nếu dữ liệu sao khi tách mà nhiều hơn số dòng này thì code tèo nhé
Nếu xài office 2007 trở lên thì có thể sửa lại số 65000 thành bi nhiêu tùy thích
PHP:
Sub test()
Dim Sarr(), Darr(1 To 65000, 1 To 1)
Dim EndNo, K, Y, I, J
With Sheet1
   Sarr = .Range(.[C10], .[C65000].End(3)).Resize(, 2).Value
End With
For I = 1 To UBound(Sarr)
   EndNo = IIf(Sarr(I, 2) = "", Sarr(I, 1), Sarr(I, 2))
   For J = Sarr(I, 1) To EndNo
       Y = Y + 1
      Darr(Y, 1) = Sarr(I, 1) + K
      K = K + 1
   Next
   K = 0
Next
Sheet2.[D2].Resize(Y) = Darr
End Sub
 
Lần chỉnh sửa cuối:
Nhập cái đoạn code này vào đâu anh?
làm sao cho nó chạy được ạ, em không hảo món code :D
 
Web KT
Back
Top Bottom