Giúp cách loại bỏ một số ký tự trong chuỗi

Liên hệ QC

Hong Van

Thành viên mới
Tham gia
27/10/07
Bài viết
13
Được thích
2
Tôi đang muốn chuyển từ tên của các loại vật tư sang mã vật tư cho dễ tổng hợp.
Nhưng tôi đang chưa biết làm thế nào. Cụ thể
Có tên vật tư: Tôn 12 x 1800 x 5340 -> MVT: T1218534
Mong mọi người giúp đỡ (càng nhanh càng tốt)
Thanks
 
Tôi đang muốn chuyển từ tên của các loại vật tư sang mã vật tư cho dễ tổng hợp.
Nhưng tôi đang chưa biết làm thế nào. Cụ thể
Có tên vật tư: Tôn 12 x 1800 x 5340 -> MVT: T1218534
Mong mọi người giúp đỡ (càng nhanh càng tốt)
Thanks
Giả sử tên vật tư ở cột A, mã vật tư ở cột B
=> công thức điền vào ô B2 chẳng hạn:
="T"&SUBSTITUTE(TRIM(A2),"x","")
(Trước đó bạn cắt hết khoảng trống ở cột A đi)
Hoặc bạn dùng công thức sau:
="T"&SUBSTITUTE(SUBSTITUTE(A2," ",""),"x","")
 
Lần chỉnh sửa cuối:
Giả sử tên vật tư ở cột A, mã vật tư ở cột B
=> công thức điền vào ô B2 chẳng hạn:
="T"&SUBSTITUTE(TRIM(A2),"x","")
(Trước đó bạn cắt hết khoảng trống ở cột A đi)
Hoặc bạn dùng công thức sau:
="T"&SUBSTITUTE(SUBSTITUTE(A2," ",""),"x","")
Nếu dùng hàm Substitute thì thay thế ký tự này bằng ký tự khác.
Có hàm nào cắt hoàn toàn những ký tự không cần thiết không
VD: SUBSTITUTE("Tôn1x2x3","x","")=Tôn1 2 3
Mình muốn trả về kết quả T123 cưa. Có cách nào khác không giúp tui với
 
Giả sử tên vật tư ở cột A, mã vật tư ở cột B
=> công thức điền vào ô B2 chẳng hạn:
="T"&SUBSTITUTE(TRIM(A2),"x","")
(Trước đó bạn cắt hết khoảng trống ở cột A đi)
Hoặc bạn dùng công thức sau:
="T"&SUBSTITUTE(SUBSTITUTE(A2," ",""),"x","")
Không dùng như vậy được đâu bạn

Dùng cáchh củ chuối của mình xem:
VD: A1=Tôn 12 x 1800 x 5340
Mã:
B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"x",""),"Tôn","T"),0,"")
Thân
 
Không dùng như vậy được đâu bạn

Dùng cáchh củ chuối của mình xem:
VD: A1=Tôn 12 x 1800 x 5340
Mã:
B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"x",""),"Tôn","T"),0,"")
Thân
Mình không để ý đến chữ "Tôn", sorry!
Nếu làm như bạn thì chỉ thay được chữ "Tôn" thế còn loại khác thì sau, ví dụ như "Tấm lợp 123 x 456 x 789" chẳng hạn!

Nếu dùng hàm Substitute thì thay thế ký tự này bằng ký tự khác.
Có hàm nào cắt hoàn toàn những ký tự không cần thiết không
VD: SUBSTITUTE("Tôn1x2x3","x","")=Tôn1 2 3
Mình muốn trả về kết quả T123 cưa. Có cách nào khác không giúp tui với
Theo bạn thì ký tự như thế nào là không cần thiết, phải có quy tắc chung chứ!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình không để ý đến chữ "Tôn", sorry!
Nếu làm như bạn thì chỉ thay được chữ "Tôn" thế còn loại khác thì sau, ví dụ như "Tấm lợp 123 x 456 x 789" chẳng hạn!
Nếu vậy thì có cách là dùng code lấy số trong chuổi đó ra rồi dùng số đó th6m bớt số bằng hàm SUBSTITUTE như sau (thầy ndu96081631)

Mã:
Function TachSo(Cell As Range) As Double
Set Temp = CreateObject("VBScript.RegExp")
  Temp.Global = True
  Temp.Pattern = "\D"
  TachSo = Temp.Replace(Cell, "")
End Function


Bạn tham khảo ở file đính kèm nhé
Thân
 

File đính kèm

  • Substitute.xls
    23 KB · Đọc: 99
Lần chỉnh sửa cuối:
Chào mọi người, tiện thể mọi người đang bàn về chủ đề loại bỏ ký tự trong một chuỗi thì cho minh hỏi luôn được không.
Ví dụ như mình có chuỗi: ++++1T4+, +++1T4L3CTO+1T4+,...chẳng hạn, mình muốn loại bỏ dấu "+" ở đầu và cuối của chuỗi được không nhỉ, sau khi loại chuỗi sẽ thành : "1T4", "1T4L3CTO+1T4"
 
Chào mọi người, tiện thể mọi người đang bàn về chủ đề loại bỏ ký tự trong một chuỗi thì cho minh hỏi luôn được không.
Ví dụ như mình có chuỗi: ++++1T4+, +++1T4L3CTO+1T4+,...chẳng hạn, mình muốn loại bỏ dấu "+" ở đầu và cuối của chuỗi được không nhỉ, sau khi loại chuỗi sẽ thành : "1T4", "1T4L3CTO+1T4"
A1 chứa chuỗi ++++1T4+,
Nhập công thức này cho ô B1 thử xem:
PHP:
=SUBSTITUTE(TRIM(SUBSTITUTE(A1;"+";" "));" ";"+")
 
A1 chứa chuỗi ++++1T4+,
Nhập công thức này cho ô B1 thử xem:
PHP:
=SUBSTITUTE(TRIM(SUBSTITUTE(A1;"+";" "));" ";"+")
Nếu chuỗi ở giữa có chứa >1 dấu + hoặc có chứa khoảng trắng thì công thức trên "tèo"...
 
Nếu chuỗi ở giữa có chứa >1 dấu + hoặc có chứa khoảng trắng thì công thức trên "tèo"...
Thấy sao làm vậy chứ "Nếu" hoài thì biết sao cho hết "Nếu".
Tác giả đưa lên 2 cái ví dụ, thấy có điểm chung nào thì "găm" vào cái đó mà làm thôi.
Híc!
Ẹc...
|
A​
|
B​
|
1​
|
Chuỗi​
|
Kết quả​
|
2​
|++++1T4+|1T4|
3​
|+++1T4L3CTO+T4+|1T4L3CTO+T4|
 
Lần chỉnh sửa cuối:
Nếu chuỗi ở giữa có chứa >1 dấu + hoặc có chứa khoảng trắng thì công thức trên "tèo"...


Chưa cần đến mức "có chứa khoảng trắng" cũng đã tèo rồi.
Vì dù không "có chứa khoảng trắng" thì sau khi thực hiện SUBSTITUTE "ở trong" thì các khoảng trắng đó nó được "đẻ ra" nên tiếp theo thì SUBSTITUTE "ở ngoài" sẽ thay chúng bằng dấu "+" và ... tèo
Nói nôm na thì sau SUBSTITUTE "ở trong" trước và sau dấu "," sẽ có các khoảng trắng và tiếp theo chúng sẽ được thay bằng dấu "+", tức đuôi của cái trước và đầu của cái sau có dấu "+"
 
Thấy sao làm vậy chứ "Nếu" hoài thì biết sao cho hết "Nếu".
Tác giả đưa lên 2 cái ví dụ, thấy có điểm chung nào thì "găm" vào cái đó mà làm thôi.
Híc!
Ẹc...
|
A​
|
B​
|
1​
|
Chuỗi​
|
Kết quả​
|
2​
|++++1T4+|1T4|
3​
|+++1T4L3CTO+T4+|1T4L3CTO+T4|

Ý tác giả thế nào thì có trời mà biết. Có thể ý "thế này" nhưng không biết diễn đạt nên thành "thế kia".
Vậy chỉ còn cách hiểu y nguyên như những gì có trên "giấy trắng mực đen".
Trên giấy là Ví dụ như mình có chuỗi: ++++1T4+, +++1T4L3CTO+1T4+,...
Tức cả cái "dài dằng dặc" đó là MỘT chuỗi chứ không phải là 2, (hay 3, 4, ...n chuỗi)
Tác giả không hề nói "các chuỗi" hay "trong mỗi cell"

Mà chắc gì cái chuỗi kia có dính dáng tới sheet. Có thể trong Macro tác giả đọc dữ liệu từ tập tin ngoài rồi "chế biến" thì sao. Không nên đoán mò. Chỉ nên dựa vào những gì đã nói, đã viết, tức các bằng chứng hiện vật nhìn được, sờ được, đo được, cân được vì nó có thực. Những gì ở trong đầu tác giả mà chưa được "đổ" ra giấy, ghi âm, ghi hình thì mãi mãi nó chỉ nằm trong đầu tác giả. Đoán có thể đúng, có thể sai.
 
Lần chỉnh sửa cuối:
Với câu hỏi này:
Chào mọi người, tiện thể mọi người đang bàn về chủ đề loại bỏ ký tự trong một chuỗi thì cho minh hỏi luôn được không.
Ví dụ như mình có chuỗi: ++++1T4+, +++1T4L3CTO+1T4+,...chẳng hạn, mình muốn loại bỏ dấu "+" ở đầu và cuối của chuỗi được không nhỉ, sau khi loại chuỗi sẽ thành : "1T4", "1T4L3CTO+1T4"
thì công thức của Ba Tê đạt yêu cầu rồi
Chán
Híc
 
Ý tác giả thế nào thì có trời mà biết. Có thể ý "thế này" nhưng không biết diễn đạt nên thành "thế kia".
Vậy chỉ còn cách hiểu y nguyên như những gì có trên "giấy trắng mực đen".
Trên giấy là Ví dụ như mình có chuỗi: ++++1T4+, +++1T4L3CTO+1T4+,...
Tức cả cái "dài dằng dặc" đó là MỘT chuỗi chứ không phải là 2, (hay 3, 4, ...n chuỗi)
Tác giả không hề nói "các chuỗi" hay "trong mỗi cell"

Mà chắc gì cái chuỗi kia có dính dáng tới sheet. Có thể trong Macro tác giả đọc dữ liệu từ tập tin ngoài rồi "chế biến" thì sao. Không nên đoán mò. Chỉ nên dựa vào những gì đã nói, đã viết, tức các bằng chứng hiện vật nhìn được, sờ được, đo được, cân được vì nó có thực. Những gì ở trong đầu tác giả mà chưa được "đổ" ra giấy, ghi âm, ghi hình thì mãi mãi nó chỉ nằm trong đầu tác giả. Đoán có thể đúng, có thể sai.
Chào Siwtom!
Nếu nói như siwtom thì chắc chẳng ai dám giải bài để giúp mọi người nữa vì cái câu "Không nên đoán mò" của bạn đó. Không phải ai cũng biết cách hỏi đâu, nhiều khi người hỏi loay hoay diễn tả được câu hỏi sao cho mọi người cũng hiểu thì tự họ đã tìm được cách giải quyết cho vấn đề của họ rồi.
Nhiều khi chúng ta cũng cần thông cảm cho họ khi thật khó diễn tả mình muốn gì và đôi khi đi hiểu nhầm sang 1 cách khác chúng ta lại khám phá ra những cái mới hay hay để mọi người cùng tranh luận, còn hiểu sai ý chắc tác giả sẽ kêu um lên ngay. Có thể đây cũng là một lý do làm cho diễn đàn GPE sôi nổi hơn, hi!
 
Chào Siwtom!
Nếu nói như siwtom thì chắc chẳng ai dám giải bài để giúp mọi người nữa vì cái câu "Không nên đoán mò" của bạn đó. Không phải ai cũng biết cách hỏi đâu, nhiều khi người hỏi loay hoay diễn tả được câu hỏi sao cho mọi người cũng hiểu thì tự họ đã tìm được cách giải quyết cho vấn đề của họ rồi.
Nhiều khi chúng ta cũng cần thông cảm cho họ khi thật khó diễn tả mình muốn gì và đôi khi đi hiểu nhầm sang 1 cách khác chúng ta lại khám phá ra những cái mới hay hay để mọi người cùng tranh luận, còn hiểu sai ý chắc tác giả sẽ kêu um lên ngay. Có thể đây cũng là một lý do làm cho diễn đàn GPE sôi nổi hơn, hi!

Tôi biết là nhiều người có khó khăn khi diễn đạt ý mình. Thậm chí có người cung cấp thông tin kiểu nhỏ giọt, mỗi bài viết cung cấp một thông tin mới khi người khác đã nhọc công giúp nhưng không đúng ý ở trong đầu mình. Tôi không khắt khe với họ. Tôi chỉ không thích đoán mò. Không phải là khi thông tin không rõ ràng thì bạn bắt buộc phải đoán mò. Bạn luôn luôn có thể, có quyền "xin" thông tin chi tiết. Bạn có lựa chọn khác chứ đâu chỉ có mỗi lựa chọn "đoán mò"?
 
Tôi biết là nhiều người có khó khăn khi diễn đạt ý mình. Thậm chí có người cung cấp thông tin kiểu nhỏ giọt, mỗi bài viết cung cấp một thông tin mới khi người khác đã nhọc công giúp nhưng không đúng ý ở trong đầu mình. Tôi không khắt khe với họ. Tôi chỉ không thích đoán mò. Không phải là khi thông tin không rõ ràng thì bạn bắt buộc phải đoán mò. Bạn luôn luôn có thể, có quyền "xin" thông tin chi tiết. Bạn có lựa chọn khác chứ đâu chỉ có mỗi lựa chọn "đoán mò"?
Tôi nghĩ đây cũng là 1 thông điệp có ích để BQT gửi tới các thành viên mới tham gia GPE khi muốn post câu hỏi của mình để tránh trường hợp :"Thậm chí có người cung cấp thông tin kiểu nhỏ giọt, mỗi bài viết cung cấp một thông tin mới khi người khác đã nhọc công giúp nhưng không đúng ý ở trong đầu mình." để các bài viết được cô đọng hơn tránh các bài viết làm loãng chủ đề và tiết kiệm tài nguyên cho GPE.
====HMT====
 
Web KT
Back
Top Bottom