Tách dữ liệu trong chuỗi (tự thêm khoảng trắng)

Liên hệ QC

Ai_Ma_Biet

Thành viên hoạt động
Tham gia
22/4/15
Bài viết
127
Được thích
20
Giới tính
Nam
Chào mọi người.

Từ cột A có thể dùng công thức để có được dữ liệu của cột B, nhưng từ cột B thì có cách nào để có được dữ liệu như cột C không? (không được dùng cột A).

1602576923106.png
 
Đại khái là từ ký tự thứ 2 trở đi, Nếu chữ hoa thì chèn thêm khoảng trắng vào trước. Dùng UDF nhé
 
Google ra vô số...
 
Nếu tên thì chữ cái đầu là chữ hoa, còn không phải tên sẽ là chữ thường.
Thử:
PHP:
Public Function ThemKhoangTrang(ByVal txt As String) As String
Dim i As Long, s As String, t As String

t = Right(txt, 1)
For i = Len(txt) To 2 Step -1
    s = t
    t = Mid(txt, i - 1, 1)
    If s <> " " And UCase(s) = s And UCase(t) <> t Then
        txt = Left(txt, i - 1) & " " & Mid(txt, i)
    End If
Next
ThemKhoangTrang = txt
End Function
 

File đính kèm

  • Tach chuoi.xlsx
    12.5 KB · Đọc: 17
Em/Con xin phép mọi người hướng dẫn chủ thớt xài Flash Fill tiếp (vì hông biết xài hàm với VBA, híc)
Từ cột A có thể dùng công thức để có được dữ liệu của cột B, nhưng từ cột B thì có cách nào để có được dữ liệu như cột C không? (không được dùng cột A).
Bạn xài Excel 2016 trở lên thì dùng chức năng Flash Fill sẵn có của Excel nhé: (còn phiên bản nhỏ hơn 2016 thì nhờ các bác các anh vậy)
1602580707265.png

@Ai_Ma_Biet : trên hình mình gửi nè, cột E là dữ liệu bạn có sẵn, cột F đang trống nhé. Rồi:
- ô F3 bạn nhập: Lê Thị
- ô F4 bạn nhập: Trần Quốc Tuấn. (2 bước này bạn copy qua rồi F2 thêm dấu khoảng cách cho lẹ, khỏi nhập tay)
- ô F5 bạn nhấn tổ hợp phím Ctrl+E (phím tắt của Flash Fill) nhé! => Xong rồi đó.

@Hoàng Tuấn 868 : cho em mượn đỡ dữ liệu của anh :D
 
Bài này có khác gì "có người cạo, người không cạo" không bác @batman1 , bác @VetMini
 
Upper B lên. So sánh với dữ liệu cũ, ký tự nào giống nhau thì cộng thêm dấu cách.
Có lẽ làm công thức hơi cực. Hàm UDF dễ hơn.
 
Bài này có thể dùng công thức kết hợp với vòng lặp chạy bằng cơm (Copy kết quả công thức dán ngược lại vùng dữ liệu gốc cho đến khi đạt yêu cầu, họ tên thì i chạy đến 10 là được)
Mã:
=TRIM(REPLACE(A1,LOOKUP(2,1/EXACT(MID(A1,ROW($1:$99),1),UPPER(MID(REPLACE(A1,FIND(" ",A1&" "),99,REPT(".",99)),ROW($1:$99),1))),ROW($1:$99)),0," "))
 
Web KT
Back
Top Bottom