Hỏi cách tách ký tự (1 người xem)

Liên hệ QC

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

a_newday

Thành viên mới
Tham gia
29/3/07
Bài viết
30
Được thích
3
Bạn nào biết có công thức chuyển ký tự trong một ô sang các ô khác chỉ cho tui với. Ví dụ trong một ô có 5 ký tư tôi muốn chuyển 5 ký tự đấy sang 5 ô riêng biệt liên tiếp mỗi ô một ký tự thì phải dùng công thức nào
 
có thể sử dụng các hàm trích kí tự như: Left, right, mid
ví dụ: ô A1 có chuổi: abcde
kí tự 1: left(a1,1)
kí tự 2: mid(a1,2,1)
kí tự 3: mid(a1,3,1)
kí tự 4: mid(a1,4,1)
kí tự 5: mid(a1,5,1) hoặc right(a1,1)
 
Bạn dùng hàm MID là được.
=Mid($A1,column()-column($A1),1)
Kéo ngang hay dọc tuỳ bạn.
Bạn xem file đính kèm nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi muốn dùng VBA để tách ký tự trong chuỗi và kết quả được ghi theo dòng như file đính kèm. Nhờ các bạn viết giúp. Thanks!
 

File đính kèm

Em viết như vầy thôi!
Mã:
Sub tachchuoi()
Dim k As String, i As Byte
k = Application.InputBox("Chon o chua du lieu:" & Chr(10) & "Luu y: Chi lay 1 o thoi", Type:=8).Address
For i = 1 To Len(Range(k))
Cells(Range(k).Row + i - 1, Range(k).Column + 1) = Mid(Range(k), i, 1)
Next
End Sub
Thân.
 
@ Po_Pikachu Code này OK rồi.

Giờ mình muốn thứ tự dòng từ trên xuống dưới là số cuối đến số đầu (ghi ngược lại) thì sửa code như thế nào ? nhờ các bạn giúp tiếp. Thanks!
Không hiểu sao dạo này đầu óc mình mụ mẫm quá không nghĩ ra được cái gì cả.
 
Lần chỉnh sửa cuối:
Vậy thì đảo nó lại.
Mã:
Sub tachchuoi()
Dim k As String, i As Byte
k = Application.InputBox("Chon o chua du lieu:" & Chr(10) & "Luu y: Chi lay 1 o thoi", Type:=8).Address
For i = 1 To Len(Range(k))
Cells(Range(k).Row + i - 1, Range(k).Column + 1) = Mid(Range(k), Len(Range(k)) - i + 1, 1)
Next
End Sub
Thân.
 
@ Po_Pikachu Code này OK rồi.

Giờ mình muốn thứ tự dòng từ trên xuống dưới là số cuối đến số đầu (ghi ngược lại) thì sửa code như thế nào ? nhờ các bạn giúp tiếp. Thanks!

Em thấy cả hai cái này đều dùng công thức được mà anh, code chi cho cực vậy -+*/-+*/-+*/

PHP:
=MID(A$1,ROW()-ROW(A$1),1)
=MID(A$1,LEN(A$1)-ROW()+ROW(A$1)+1,1)
 

File đính kèm

Em thấy cả hai cái này đều dùng công thức được mà anh, code chi cho cực vậy -+*/-+*/-+*/

PHP:
=MID(A$1,ROW()-ROW(A$1),1)
=MID(A$1,LEN(A$1)-ROW()+ROW(A$1)+1,1)
----
Chắc Bạn Trung Chinh có mục đích riêng.
Nếu dùng công thức như của Bạn thì có thể làm gọn lại:
Mã:
=MID(A$1;ROW()-1;1)

Mã:
=MID(A$1;LEN(A$1)-(ROW()-2);1)
Thân.
 
----
Chắc Bạn Trung Chinh có mục đích riêng.
Nếu dùng công thức như của Bạn thì có thể làm gọn lại:
Mã:
=MID(A$1;ROW()-1;1)

Mã:
=MID(A$1;LEN(A$1)-(ROW()-2);1)
Thân.

Hihi, mình làm dài dòng vậy là cũng có mục đích riêng của mình đó chứ, với công thức của bạn, nếu ta Insert thêm vài dòng ở trên vùng dữ liệu thì bị lỗi liền.
 
Hihi, mình làm dài dòng vậy là cũng có mục đích riêng của mình đó chứ, với công thức của bạn, nếu ta Insert thêm vài dòng ở trên vùng dữ liệu thì bị lỗi liền.

Nếu dùng =Mid($A$1,Row(1:1),1) rồi FillDown khỏi lo thêm dòng
 
Cảm ơn các bạn đã giúp đỡ. Tất cả các bài của các bạn ở trên đối với tôi đều hữu ích. Vấn đề còn lại là tôi phải biết lựa chọn để vận dụng vào từng trường hợp cụ thể. Những lỗi phát sinh (nếu có) tôi có thể khắc phục được.
 
Có một danh sách mà tên và địa chỉ trong cùng một cell, tên ở hàng trên, địa chỉ ở hàng dưới (ví dụ "Trần Đăng Tiến" nhấn phím Alt+Enter "52 Võ Thị Sáu"). Làm cách nào để tách tên ra một cell riêng và địa chỉ một cell riêng? Nhờ các bạn giúp mình với! (Email tiendt.xyz@gmail.com)
 
B1 = LEFT(A1;FIND(CHAR(10);A1;1)-1)

C1 = RIGHT(A1;LEN(A1)-LEN(C1)-1)

hoặc C1 = RIGHT(A1;LEN(A1)-FIND(CHAR(10);A1;1))
 
Ký tự xuống dòng trong cell là ký tự có charcode = 10:
B1 = LEFT(A1,FIND(CHAR(10),A1,1)-1)
C1 = RIGHT(A1,LEN(A1)-FIND(CHAR(10),A1,1))

Hic, chậm chân hơn lão chết tiệt mất rồi.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom