Tự động thêm hàng và số kiện vào sau một số (2 người xem)

Liên hệ QC

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

bin.vcsc

Thành viên hoạt động
Tham gia
6/12/13
Bài viết
125
Được thích
14
Gửi các anh chị và các bạn

Mình có vướng mắc này mong anh chị hỗ trợ giúp mình với.
Mình có một list các số vận đơn và số kiện. Mình muốn là tùy theo số kiện excel sẽ tự động thêm hàng và thêm số kiện vào phía sau.
Ví dụ:
Vận đơn: 123456789 có 2 kiện và vận đơn 987654321 có 3 kiện.
Làm thế nào để từ danh sách này, excel có thể tự động thêm số kiện vào phía sau, để được kết quả mới:
Số vận đơn
12345678901
12345678902
98765432101
98765432102
98765432103

Mong nhận được sự quan tâm và hỗ trợ. Xin chân thành cảm ơn các anh chị và các bạn.
 

File đính kèm

Công thức đơn giản thì thế này, tách 2 cột cho dễ đỡ rối
B10 = IFERROR(IF(COUNTIF(B9:$B$9;B9)>VLOOKUP(B9;$A$3:$B$6;2)-1;INDEX($A$3:$A$6;MATCH(B9;$A$3:$A$6)+1);B9);A3) C10 =B10&"0"&COUNTIF($B$9:B10;B10)
1600830288140.png
 
Lần chỉnh sửa cuối:
Gửi các anh chị và các bạn

Mình có vướng mắc này mong anh chị hỗ trợ giúp mình với.
Mình có một list các số vận đơn và số kiện. Mình muốn là tùy theo số kiện excel sẽ tự động thêm hàng và thêm số kiện vào phía sau.
Ví dụ:
Vận đơn: 123456789 có 2 kiện và vận đơn 987654321 có 3 kiện.
Làm thế nào để từ danh sách này, excel có thể tự động thêm số kiện vào phía sau, để được kết quả mới:
Số vận đơn
12345678901
12345678902
98765432101
98765432102
98765432103

Mong nhận được sự quan tâm và hỗ trợ. Xin chân thành cảm ơn các anh chị và các bạn.
Trường hợp số kiện lớn hơn 99 thì kết quả sẽ như thế nào?
 
Trường hợp số kiện lớn hơn 99 thì kết quả sẽ như thế nào?
Công ty có nhiều kiện hàng đến thế cho mỗi vận đơn thì người quản lý đã không phải lên đây hỏi.

(*) quản lý hàng ở công ty phức tạp bậc đó mà còn vướng víu ba cái mớ đánh số thì công ty chắc sắp phá sản (trừ phi công ty làm ăn kiểu ma giáo).
Không phải là người quản lý giỏi sẽ rành các công thức khủng, mà là họ sẽ biết cách thiết kế sao cho khônng phải dùng công thức khủng.
 
Mình dự phòng trong trường hợp số kiện từ 001 đến 999, có thể hiện tại chưa đến 100 kiện / BL, nhưng ai biết được trong quả ổi có sâu?
Kết quả có dạng 123456789001 - 999
Với danh sách B/L trong vùng A3:A10

Ô đầu tiên A14:
=A3*1000+1

Ô A15:
Mã:
=IF(COUNT($A$14:A14)>=SUM($B$3:$B$10),"",
IF(SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0,A14+1,
INDEX($A$3:$A$10,MATCH(LEFT(A14,LEN(A14)-3)+0,$A$3:$A$10,0)+1)*1000+1))

Thay 1000 bằng 100 và LEN(A14)-3 bằng LEN(A14)-2 cho trường hợp số kiện chắc chắn nhỏ hơn 100
 

File đính kèm

Ngay khi nhìn vào đề bài con cũng có suy nghĩ này. Tuy nhiên con nghĩ chỗ thớt trong thực tế số kiện sẽ không >99 đâu bác. :)
Đúng không bạn @bin.vcsc ? ;)
Đúng rồi xuongrongdat ah
Bài đã được tự động gộp:

Công ty có nhiều kiện hàng đến thế cho mỗi vận đơn thì người quản lý đã không phải lên đây hỏi.

(*) quản lý hàng ở công ty phức tạp bậc đó mà còn vướng víu ba cái mớ đánh số thì công ty chắc sắp phá sản (trừ phi công ty làm ăn kiểu ma giáo).
Không phải là người quản lý giỏi sẽ rành các công thức khủng, mà là họ sẽ biết cách thiết kế sao cho khônng phải dùng công thức khủng.
Hi VietMini

Cám ơn bạn. Tuy nhiên theo mình nghĩ chưa chắc công ty lớn đã có cách nghĩ và cách làm như các công ty nhỏ bạn ah.
Bài đã được tự động gộp:

Mình dự phòng trong trường hợp số kiện từ 001 đến 999, có thể hiện tại chưa đến 100 kiện / BL, nhưng ai biết được trong quả ổi có sâu?
Kết quả có dạng 123456789001 - 999
Với danh sách B/L trong vùng A3:A10

Ô đầu tiên A14:
=A3*1000+1

Ô A15:
Mã:
=IF(COUNT($A$14:A14)>=SUM($B$3:$B$10),"",
IF(SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0,A14+1,
INDEX($A$3:$A$10,MATCH(LEFT(A14,LEN(A14)-3)+0,$A$3:$A$10,0)+1)*1000+1))

Thay 1000 bằng 100 và LEN(A14)-3 bằng LEN(A14)-2 cho trường hợp số kiện chắc chắn nhỏ hơn 100
Mình cám ơn bạn.
Nhưng ý của mình là từ thông tin số vận đơn và số kiện ban đầu (chỉ có 2 dòng).
Chúng ta có thể tạo được data mới là 5 dòng, và mỗi vận đơn sẽ kèm số kiện phía sau ah.
 
Lần chỉnh sửa cuối:
Chỉ có 2 dòng ban đầu và 5 dòng kết quả thì làm tay cho xong.
Công thức từ bài 7, trường hợp 2 (<100)
 

File đính kèm

File đính kèm

Bạn tham khảo file, nếu số lượng >=100 thì tự nhảy từ 2 sang 3 số cuối.
Dòng cuối đang là 99, các số vận đơn đang dưới dạng "XXX00", nếu vận đơn mới (thứ 4) có số kiện 100, thế là 3 vận đơn đầu thay đổi từ "12345601" thành "123456001"
Nếu thay đổi toàn bộ thì quá nguy hiểm
Nếu <100 vẫn giữ dạng "00" còn >100 chuyển qua dạng "000" thì không tương thích.
Theo tôi nên dùng dạng XXX000, dự phòng mức tối đa trước. Thừa còn hơn không.
Khi đặt code ID, thường người ta hay tính dư.
Kiểu như sự cố Y2K cách đây 20 năm, làm tốn kém bao nhiêu tiền của.
 
Mình dự phòng trong trường hợp số kiện từ 001 đến 999, có thể hiện tại chưa đến 100 kiện / BL, nhưng ai biết được trong quả ổi có sâu?
Kết quả có dạng 123456789001 - 999
Với danh sách B/L trong vùng A3:A10

Ô đầu tiên A14:
=A3*1000+1

Ô A15:
Mã:
=IF(COUNT($A$14:A14)>=SUM($B$3:$B$10),"",
IF(SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0,A14+1,
INDEX($A$3:$A$10,MATCH(LEFT(A14,LEN(A14)-3)+0,$A$3:$A$10,0)+1)*1000+1))

Thay 1000 bằng 100 và LEN(A14)-3 bằng LEN(A14)-2 cho trường hợp số kiện chắc chắn nhỏ hơn 100

Em xin lỗi bác, em xem lại thì đây đúng là cái em cần rồi a.
Wow wow ^^. Bác cao tay quá. Em đang nghĩ đến dùng macro nhưng nghĩ mãi chưa ra. Gặp bác thì đúng thật là buồn ngủ gặp chiếu manh.
Xin đa tạ bác ah.
 
...Kiểu như sự cố Y2K cách đây 20 năm, làm tốn kém bao nhiêu tiền của.
Điểm này thì bạn chưa hẳn đã đúng.
Ngày xưa người ta dùng 2 chữ số để ghi số năm là do giới hạn của máy tính và bộ nhớ và truyền tin lúc ấy (*). Lúc quyết định như thế, IBM đã biết đến năm 2000 thì có vấn đề, nhưng họ hy vọng là sẽ giải quyết được trước hạn định năm 2000. Và họ đã tiên đoán đúng, chuyện "thảm hoạ Y2K" không hề xảy ra.
Nếu ngày xưa, IBM quyết định dùng 4 chữ số cho năm thì tốn kém còn hơn nhiều. Và nhiều người cũng tin rằng vì tốn kém như thế, có thể công nghệ thông tin bị trễ 1 chút.

(*) công nghệ khoảng đầu thập niên 70's:
Một cái máy tính IBM to bằng cái tủ, lúc chạy có máy điều hoà. Một cái "hard drive" 1GB lớn như cái máy giặt (cái drive trông như máy giặt, chồng đĩa bên to như cái cặp); băng từ là các cuộn băng giống như máy hát băng nhạc (băng 12mm, không phải cassette nhé); khi cần "chuyển drive", người ta ngưng cái drive và thay chồng dĩa hoặc cuộn băng. Máy truyền tin bình thường dùng tín hiệu "pulse", chạy 300 bit/giây là tốt lắm rồi.
Việc giảm thiểu số năm là điều bắt buộc.
 
Bạn tham khảo file này
Gửi các anh chị và các bạn

Mình có vướng mắc này mong anh chị hỗ trợ giúp mình với.
Mình có một list các số vận đơn và số kiện. Mình muốn là tùy theo số kiện excel sẽ tự động thêm hàng và thêm số kiện vào phía sau.
Ví dụ:
Vận đơn: 123456789 có 2 kiện và vận đơn 987654321 có 3 kiện.
Làm thế nào để từ danh sách này, excel có thể tự động thêm số kiện vào phía sau, để được kết quả mới:
Số vận đơn
12345678901
12345678902
98765432101
98765432102
98765432103

Mong nhận được sự quan tâm và hỗ trợ. Xin chân thành cảm ơn các anh chị và các bạn.
 
Dòng cuối đang là 99, các số vận đơn đang dưới dạng "XXX00", nếu vận đơn mới (thứ 4) có số kiện 100, thế là 3 vận đơn đầu thay đổi từ "12345601" thành "123456001"
Nếu thay đổi toàn bộ thì quá nguy hiểm
Nếu <100 vẫn giữ dạng "00" còn >100 chuyển qua dạng "000" thì không tương thích.
Theo tôi nên dùng dạng XXX000, dự phòng mức tối đa trước. Thừa còn hơn không.
Khi đặt code ID, thường người ta hay tính dư.
Kiểu như sự cố Y2K cách đây 20 năm, làm tốn kém bao nhiêu tiền của.
SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0
Chú giải thích giúp cháu ý nghĩa của điều kiện này với ạ
 
SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0
Chú giải thích giúp cháu ý nghĩa của điều kiện này với ạ
Theo cách hiểu của mình là như sau:
Bạn ấn F9 vào phần ngoặc trong công thức để xem giá trị ẩn:
SUMPRODUCT({TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}*{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE})
Đây là toán tử với True = 1, False = 0
=> SUMPRODUCT({1;0;1;1;1;1;1;1}*{1;1;0;0;0;0;0;0})
Phép nhân bởi hàm SUMPRODUCT kết hợp chúng thành một mảng riêng. Và vì nhân 0 thì bằng 0, nên 1 chỉ xuất hiện khi cả hai điều kiện được đáp ứng
=> SUMPRODUCT{1;0;0;0;0;0;0;0}
=> chắc chắn kết quả sẽ trả về >0 hoặc = 0. Khi đó “điều kiện” của mệnh đề if
+ Nếu “điều kiện” > 0 sẽ thực hiện “công việc 1” là tăng số vận đơn lên 1 đơn vị
+ Nếu “điều kiện” = 0 sẽ thực hiện “công việc 2” là chuyển qua số vận đơn mới đếm lại theo số kiện mới
 
SUMPRODUCT(($A$3:$A$10*1000<A14)*($A$3:$A$10*1000+$B$3:$B$10>A14))>0
Chú giải thích giúp cháu ý nghĩa của điều kiện này với ạ
Vì vận đơn là con số tính toán được nên tận dụng như sau:
123456789*1000 để trở thành số vận đơn điều kiện nhỏ nhất:123456789000, lớn nhất là 123456789*1000+B3 (số kiện)=123456789003 (ví dụ B3=3)
Còn SUMPRODUCT thì chắc bạn hiểu cách hoạt động rồi.
 
Dòng cuối đang là 99, các số vận đơn đang dưới dạng "XXX00", nếu vận đơn mới (thứ 4) có số kiện 100, thế là 3 vận đơn đầu thay đổi từ "12345601" thành "123456001"
Nếu thay đổi toàn bộ thì quá nguy hiểm
Nếu <100 vẫn giữ dạng "00" còn >100 chuyển qua dạng "000" thì không tương thích.
Theo tôi nên dùng dạng XXX000, dự phòng mức tối đa trước. Thừa còn hơn không.
Khi đặt code ID, thường người ta hay tính dư.
Kiểu như sự cố Y2K cách đây 20 năm, làm tốn kém bao nhiêu tiền của.

Cám ơn bác @bebo021999, Bin xin làm phiền chút xíu nữa. Do số lượng vận đơn của em rất nhiều nên em muốn để data ban đầu (số vận đơn và số kiện) ở sheet 1 và kết quả mới (số vận đơn đã được thêm số kiện phía sau) sẽ ở sheet 2. Mặc dù đã có công thức và Bin thử làm mấy lần nhưng kết quả không chạy được. Bin xin làm phiền giúp Bin lần nữa ah.
 
Công thức ô A3 sheet mới (A2=Sheet1!A3*100+1)
Mã:
=IF(VLOOKUP(--LEFT(A2,9),Sheet1!$A$3:$B$4,2,)-RIGHT(A2,2)=0,INDEX(Sheet1!$A$3:$A$4,MATCH(--LEFT(A2,9),Sheet1!$A$3:$A$4,)+1)*100+1,A2+1)
 

File đính kèm

Web KT

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

Back
Top Bottom