Tách các ký tự từ chuỗi theo mẫu

Liên hệ QC

ketamine

Thành viên mới
Tham gia
24/9/15
Bài viết
1
Được thích
0
Mình đang cần tách địa chỉ như thế này

Ô A1 : 25 PHAN CHU TRINH, P.TÂN THÀNH, Q.TP, TP. HCM

Mình muốn

Ô B1 : 25 PHAN CHU TRINH
Ô C1 : P. TÂN THÀNH
Ô D1 : Q.TP
Ô E1 : TP. HCM

mình phải làm thế nào ? Mong các bạn và các anh chị giúp đỡ ạ.

Điển hình trong file đính kèm, thanks các bạn và các anh chị .
 

File đính kèm

  • San pham nhua.xls
    61 KB · Đọc: 13
Mình đang cần tách địa chỉ như thế này

Ô A1 : 25 PHAN CHU TRINH, P.TÂN THÀNH, Q.TP, TP. HCM

Mình muốn

Ô B1 : 25 PHAN CHU TRINH
Ô C1 : P. TÂN THÀNH
Ô D1 : Q.TP
Ô E1 : TP. HCM

mình phải làm thế nào ? Mong các bạn và các anh chị giúp đỡ ạ.

Điển hình trong file đính kèm, thanks các bạn và các anh chị .

Nếu dữ liệu của bạn cứ theo quy luật có ngăn cách bởi 4 dấu "Phẩy" thì xài cái sau: Fill sang ngang cho các cột

Bằng không theo quy luật thì cứ trước mỗi dấu phẩy thì dữ liệu nó tách ra ở 1 cột,...vậy thôi.
Mã:
 =TRIM(MID(SUBSTITUTE($C2,",",REPT(" ",255)),COLUMNS($A:A)*255-254,255))
 
Mình đang cần tách địa chỉ như thế này

Ô A1 : 25 PHAN CHU TRINH, P.TÂN THÀNH, Q.TP, TP. HCM

Mình muốn

Ô B1 : 25 PHAN CHU TRINH
Ô C1 : P. TÂN THÀNH
Ô D1 : Q.TP
Ô E1 : TP. HCM

mình phải làm thế nào ? Mong các bạn và các anh chị giúp đỡ ạ.

Điển hình trong file đính kèm, thanks các bạn và các anh chị .
Có cách làm khác mà không dùng đến công thức, bạn làm như sau:
- Chon toàn bộ cột C
- Vào Data \ Text to Colums \Next
- Tích vào Other, gõ dấu ","
- Chọn Finish, xong.
Thật đơn giản.
 
Mình đang cần tách địa chỉ như thế này

Ô A1 : 25 PHAN CHU TRINH, P.TÂN THÀNH, Q.TP, TP. HCM

Mình muốn



Ô B1 : 25 PHAN CHU TRINH
Ô C1 : P. TÂN THÀNH
Ô D1 : Q.TP
Ô E1 : TP. HCM

mình phải làm thế nào ? Mong các bạn và các anh chị giúp đỡ ạ.

Điển hình trong file đính kèm, thanks các bạn và các anh chị .

Mình làm thử bằng VBA bạn xem vầy có được không, bạn bấm vào nút chạy Code sẽ cho ra kết quả
 

File đính kèm

  • Tach.xls
    44.5 KB · Đọc: 11
Mình làm thử bằng VBA bạn xem vầy có được không, bạn bấm vào nút chạy Code sẽ cho ra kết quả

Bạn dùng Split sẽ bỏ bớt được 1 vòng lập:
Mã:
Sub tach()
  Dim i As Long
  Dim arr
  Range("B1:F104").ClearContents
  For i = 1 To 104
    [COLOR=#ff0000]arr = Split(Cells(i, 1).Value, ", ")[/COLOR]
    [COLOR=#ff0000]Cells(i, 2).Resize(, UBound(arr) + 1).Value = arr[/COLOR]
   Next i
End Sub
Ngoài ra: Mới học viết VBA nên chú trọng việc khai báo biến đầy đủ và đúng kiểu
Trong cửa sổ VBA, bạn nên vào menu Tools\Options và check mục "Require Variable Declaration" trong tab Editor.


Untitled_1.jpg


























Kể từ bây giờ trở đi, mỗi khi bạn viết code thì sẽ thấy ngay dòng Option Explicit nằm sẵn. Mục đích dòng này nó sẽ "rình" và báo lỗi khi bạn quên không khai báo biến đầy đủ


Untitled_2.jpg
 
Bạn dùng Split sẽ bỏ bớt được 1 vòng lập:
Mã:
Sub tach()
  Dim i As Long
  Dim arr
  Range("B1:F104").ClearContents
  For i = 1 To 104
    [COLOR=#ff0000]arr = Split(Cells(i, 1).Value, ", ")[/COLOR]
    [COLOR=#ff0000]Cells(i, 2).Resize(, UBound(arr) + 1).Value = arr[/COLOR]
   Next i
End Sub
Ngoài ra: Mới học viết VBA nên chú trọng việc khai báo biến đầy đủ và đúng kiểu
Trong cửa sổ VBA, bạn nên vào menu Tools\Options và check mục "Require Variable Declaration" trong tab Editor.


View attachment 147702


























Kể từ bây giờ trở đi, mỗi khi bạn viết code thì sẽ thấy ngay dòng Option Explicit nằm sẵn. Mục đích dòng này nó sẽ "rình" và báo lỗi khi bạn quên không khai báo biến đầy đủ


View attachment 147703
















Cảm ơn chú ạ.

PS: Đã check vào mục Require Variable Declaration cho lần sau khỏi quên luôn.hihi :-=
 
Bạn dùng Split sẽ bỏ bớt được 1 vòng lập:
Ngoài ra: Mới học viết VBA nên chú trọng việc khai báo biến đầy đủ và đúng kiểu
Trong cửa sổ VBA, bạn nên vào menu Tools\Options và check mục "Require Variable Declaration" trong tab Editor.
không check vào thì nó tự gán biến tự động làm code chạy chậm hay sao thầy.
 
không check vào thì nó tự gán biến tự động làm code chạy chậm hay sao thầy.

Cái việc chậm hay nhanh tôi không dám chắc nhưng có điều chắc như vầy: Nếu bạn không phải báo biến thì bạn sẽ mất cơ hội được xem các gợi ý về những thuộc tính, phương thức của biến
Ví dụ:
Mã:
Sub Test()
   Set rng = Range("A1:B10")
   ......
End Sub
Sau đoạn Set rng = ... giờ xuống hàng rồi gõ rng.
Sau khi gõ dấu chấm bạn sẽ chẳng thấy có gì xảy ra cả
Tuy nhiên, nếu viết thành vầy:
Mã:
Sub Test()
   [COLOR=#ff0000]Dim rng as Range[/COLOR]  ''khai báo biến đàng hoàng
   Set rng = Range("A1:B10")
   ......
End Sub
bên dưới dòng Set rng =.... nếu bạn gõ rng. thì ngay sau dấu chấm sẽ có cả đống gợi ý cho bạn mặc sức lựa chọn (đở mất công nhớ)

Untitled.jpg
 
Dùng Notepad để hỗ trợ
Của bạn đây
 

File đính kèm

  • San pham nhua-tach.xls
    74 KB · Đọc: 13
Blackberry cho Apple hỏi Blackberry thấy trong File mà Apple dùng Notepad để hỗ trợ chuyển đổi (đính kèm ở post trên) có gì Không Ổn không? -\\/.-\\/.-\\/.

Bạn đính kèm cái quái gì ở trên.....file y chang file gốc của họ, có tách cái quái gì ở trong đó...........mới hỏi bạn thực sự có ổn hok thôi!
 
Công bằng ở dưới cũng có mà #13 không để ý. Kể ra forum cũng lắm kỳ nhân dị khách ^^
 
Công bằng ở dưới cũng có mà #13 không để ý. Kể ra forum cũng lắm kỳ nhân dị khách ^^

Mộtkhi đã làm thì phải đưa ra cái chỗ sáng. chứ không ai lại đi nhét vào cái chỗ tối thui........, cho dù có làm đúng đi chăng nữa cũng phải bố trí sao cho người ta đập mắt vào là thấy....
 
Mộtkhi đã làm thì phải đưa ra cái chỗ sáng. chứ không ai lại đi nhét vào cái chỗ tối thui........, cho dù có làm đúng đi chăng nữa cũng phải bố trí sao cho người ta đập mắt vào là thấy....

Công bằng mà nói, học sinh đi thì cũng phải biết chép đề ở trên, làm bài ở dưới.

Chứ mấy học sinh không biết "giấy rách phải giữ lấy lề", làm bài mà người khác nhìn vào cũng chẳng biết đề là gì thì chỉ có qua Tây mà học, văn hóa Á Đông không trọng vậy /-*+//-*+//-*+/
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom