Mình có một list mã số như sau :
A0-01-001
nhờ các bạn hướng dẫn giùm cách tăng số mã số
từ A0-01-001 lên A0-01-002, A0-01-00... mà không phải gõ bằng tay
mình không biết dùng hàm gì.
Mình có một list mã số như sau :
A0-01-001
nhờ các bạn hướng dẫn giùm cách tăng số mã số
từ A0-01-001 lên A0-01-002, A0-01-00... mà không phải gõ bằng tay
mình không biết dùng hàm gì.
(Hoặc là A0-02-000) mà chuyện đó excel chưa biết cách làm!
A1="A0-"&INT(ROW()/1000+1)&"-"&MOD(ROW(),1000)
làm như thế nó mất "00" hả bạn ? - a0-1-1khắc phục bằng công thức này vậy:
Khắc phục bằng công thức này vậy:
A1="A0-"&INT(ROW()/1000+1)&"-"&MOD(ROW(),1000)
Vậy thì bạn sửa lại công thức của DOSNET một chút.làm như thế nó mất "00" hả bạn ? - a0-1-1
Option Explicit
Function TaoMa(Ma As String) As String
' "A*-**-***" '
If InStr(Ma, "9-99-999") > 0 Then
TaoMa = Chr(Asc(Ma) + 1) & "0-00-001"
ElseIf InStr(Ma, "-99-999") > 0 Then
TaoMa = Left(Ma, 1) & CStr(CByte(Mid(Ma, 2, 1)) + 1) & "-00-001"
ElseIf InStr(Ma, "9-999") > 0 Then
TaoMa = Left(Ma, 3) & CStr(CByte(Mid(Ma, 4, 1)) + 1) & "0-001"
ElseIf InStr(Ma, "999") > 0 Then
TaoMa = Left(Ma, 4) & CStr(CByte(Mid(Ma, 5, 1)) + 1) & "-001"
ElseIf InStr(Ma, "99") > 0 Then
TaoMa = Left(Ma, 6) & CStr(CByte(Mid(Ma, 7, 1)) + 1) & "00"
ElseIf Right(Ma, 1) = "9" Then
TaoMa = Left(Ma, 7) & CStr(CByte(Mid(Ma, 8, 1)) + 1) & "0"
Else
TaoMa = Left(Ma, 8) & CStr(CByte(Right(Ma, 1)) + 1)
End If
End Function
Nhìn vô công thức này thấy ngay là chưa thể tổng quát;
Sau mã A0-99-999 sẽ là là A1-00-000 hay là A1-00-001 cơ mà. . .
& Sau A9-99-999 sẽ là B0-00-000 (1) cơ mà!
Nếu đòi hỏi như vậy chắt mệt cho công thức lắm, nhỉ?!
làm như thế nó mất "00" hả bạn ? - a0-1-1
Khẳng định với bạn là theo cách của bạn sẽ không đáp ứng được yêu cầu của tác giả.cái này mình thấy chỉ cần thêm dấu (') vào trước A0-00-01 thì kéo xuống bình thường thôi mà.
Công thức chỉ mang tính chất gợi ý tổng quát hướng làm. Dosnet đã tính làm nốt chỗ "A0" nhưng chắc quá 65.000 dòng nên bỏ qua
<font color="red">Mình có một list mã số như sau :
A0-01-001
nhờ các bạn hướng dẫn giùm cách tăng số mã số
từ A0-01-001 lên A0-01-002, A0-01-00... mà không phải gõ bằng tay
mình không biết dùng hàm gì.
=IF(VALUE(RIGHT(A1,LEN(A1)-6))<9,LEFT(A1,6)&"00"&VALUE(RIGHT(A1,LEN(A1)-6))+1,IF(AND(VALUE(RIGHT(A1,LEN(A1)-6))>=9,VALUE(RIGHT(A1,LEN(A1)-6))<99),LEFT(A1,6)&"0"&VALUE(RIGHT(A1,LEN(A1)-6))+1,IF(VALUE(RIGHT(A1,LEN(A1)-6))>=99,LEFT(A1,6)&VALUE(RIGHT(A1,LEN(A1)-6))+1,"")))
Cái nào cũng có một yêu cầu cụ thể thì mới làm được chứ bạn. Nghĩ ra một công thức bao quát tất cả sẽ phức tạp hơn, mất thời gian hơn so với xử lý từng trường hợp. Nói chung chung thì khó mà lường hết các trường hợp lắm.Bài toán loại này hay gặp trong quản lý vật tư, mà thường khi đó các loại hàng hóa phân theo nhóm theo cách riêng của người quản lý
Cho nên số liệu vừa có cả tịnh tiến vừa có cả nhảy cóc
Nói giả dụ thôi: 2 ký số nằm giữa 2 gạch nối có thể biểu thị 100 ngành hàng khác nhau
theo dự kiến; Nhưng hiện tại trong kho chỉ ó 35 ngành hàng; Cơ mà theo phân loại của người quản kho, chúng không phải là từ -00- đến mã -34- mà có thể vượt -34- vài chục món & vài chục số;
Ví dụ: Họ quy định:
-0X- : Nhiên liệu
-1X-: Điện, điện tử
-5X-: Vật liệu xây dựng
-6X- Hóa chất
-07- Hàng cơ khí,. . .
Nhưng thôi, vẽ ra nhiều quá rồi thì phải
Xin lỗi nếu làm các bạn phiền lòng!
Cái nào cũng có một yêu cầu cụ thể thì mới làm được chứ bạn. Nghĩ ra một công thức bao quát tất cả sẽ phức tạp hơn, mất thời gian hơn so với xử lý từng trường hợp. Nói chung chung thì khó mà lường hết các trường hợp lắm.
Mã tiếp theo của "J9-99-999" sao không phải là "K0-00-000" hoặc "K1-01-001" mà là "K0-00-001". Tôi làm luôn cả 3 trường hợp vậy.Mình muốn nói đến trường hợp tổng quát nhất:
Viết 1 hàm mà khi nhận vô 1 chuỗi, thì trả về chuỗi lớn có trị "Lớn" hơn liền kề trong dạng thức quy định W*-**-***
Ở đây W đại diện cho 1 ký tự, * đại diện cho 1 ký số
Ví dụ =TaoMa( "J9-99-999") sẽ trả về => "K0-00-001"
= TaoMa( "K8-99-999") => trả về "K9-00-001"
. . . . .
Lòng tham của con người í mà, thông cảm!
Ở cột chứa list bạn cứ vào FOTMAT CELL GENERAL CUSTOM TYPE : 00# . Chọn ô kế dưới nhập A0-01-001 rồi kéo nó xuốngMình có một list mã số như sau :
A0-01-001
nhờ các bạn hướng dẫn giùm cách tăng số mã số
từ A0-01-001 lên A0-01-002, A0-01-00... mà không phải gõ bằng tay
mình không biết dùng hàm gì.
Xem kỹ yêu cầu trước khi trả lời bài viết nha bạn.Ở cột chứa list bạn cứ vào FOTMAT CELL GENERAL CUSTOM TYPE : 00# . Chọn ô kế dưới nhập A0-01-001 rồi kéo nó xuống
Mỏi tay thì nghỉ , không cần công thức gì ráo trọi