Tách chữ trong hàm

Liên hệ QC
chào ban quản trị và các bạn:
Mình cần hỏi là mình có 1 cột có 1 số dòng có các chữ dính liền nhau, mình cần tách các chữ dính liền nhau ra thì mình cần làm thế nào vậy.
P/a 1 là : Tách ra các chữ dính liền nhau có khoảng trống (dấu cách)
p/a 2 là: Tách ra làm 2 cột rồi nhau ở khoảng chữ dính liền nhau
p/s: File đính kèm của mình là cột d ah
cảm ơn các bác nhiều ah
Mã:
h5= match(1,index((exact(mid(d5,row(offset($a$1,,,len(d5))),1),lower( mid(d5,row(offset($a$1,,,len(d5))),1)))=false)*(len(trim(mid(" "&d5,row(offset($a$1,,,len(d5))),3)))=3)*exact(mid(d5,row(offset($a$1,,,len(d5)))+1,1),lower( mid(d5,row(offset($a$1,,,len(d5)))+1,1))),0),0)-1

Mã:
e5=iferror( left(d5,h5),d5)

Mã:
f5=iferror( mid(d5,h5+1,1000),"")

Mã:
g5=e5&" "&f5
 
Gộp chung cả 2 p/a vào kết quả
Kết quả dán vào cột F:H
Mã:
Public Sub Tach()
Dim Nguon, Tam, Vt, kq(), r As Long, c As Long, cl As Integer

On Error Resume Next
Nguon = Sheet1.Range("D5", Sheet1.Range("D65000").End(xlUp))
ReDim kq(1 To UBound(Nguon), 2)

For r = 1 To UBound(Nguon)
Tam = Split(Nguon(r, 1))
Vt = Len(Tam(0))

For c = 1 To UBound(Tam)
Vt = Vt + Len(Tam(c)) + 1
If Len(Tam(c)) > 1 Then
If LCase(Right(Tam(c), Len(Tam(c)) - 1)) <> Right(Tam(c), Len(Tam(c)) - 1) Then

For cl = Len(Tam(c)) To 2 Step -1
If LCase(Mid(Tam(c), cl, 1)) = Mid(Tam(c), cl, 1) Then
Vt = Vt - 1
Else
Exit For
End If
Next cl

kq(r, 1) = Left(Nguon(r, 1), Vt - 1)
kq(r, 2) = Right(Nguon(r, 1), Len(Nguon(r, 1)) - Vt + 1)
kq(r, 0) = kq(r, 1) & " " & kq(r, 2)
Exit For
End If
End If
Next c

If Vt = Len(Nguon(r, 1)) Then kq(r, 0) = Nguon(r, 1)
Vt = 0
Next r

Sheet1.Range("F5", Sheet1.Range("H65000")).ClearContents
Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1) = kq
Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1).Columns.AutoFit
End Sub

Cảm ơn bạn, tuy nhiên có cách gì không phải chạy đoạn code này không bạn >?
 
Mã:
h5= match(1,index((exact(mid(d5,row(offset($a$1,,,len(d5))),1),lower( mid(d5,row(offset($a$1,,,len(d5))),1)))=false)*(len(trim(mid(" "&d5,row(offset($a$1,,,len(d5))),3)))=3)*exact(mid(d5,row(offset($a$1,,,len(d5)))+1,1),lower( mid(d5,row(offset($a$1,,,len(d5)))+1,1))),0),0)-1

Mã:
e5=iferror( left(d5,h5),d5)

Mã:
f5=iferror( mid(d5,h5+1,1000),"")

Mã:
g5=e5&" "&f5
Hoan hô doveandrose, khó vậy mà cũng nghỉ ra, quá sáng tạo, cảm ơn bạn nhiều.
 
Không biết các bác trên diễn đàn có thêm ý kiến gì không...
Riêng tôi thì chỉ nghĩ rằng: Excel tiếng gì thì tên hàm vẫn không thay đổi.

Tôi đã từng thấy một bản Excel tiếng Nhật, họ vẫn dùng, SUM, IF, LEN, v.v... đấy thay!
Hi BNTT
Giúp mình phát này nhé
mình muốn lấy chữ THPT, THPT DL, Chuyên, THDL, còn lại N/A bằng IF và FIND nhưng vẫn gặp một số lỗi, ko ra. Nhờ bạn chỉ giáo
Thanks
 

File đính kèm

  • Ds trường PTTH.xls
    616 KB · Đọc: 22
Hi BNTT
Giúp mình phát này nhé
mình muốn lấy chữ THPT, THPT DL, Chuyên, THDL, còn lại N/A bằng IF và FIND nhưng vẫn gặp một số lỗi, ko ra. Nhờ bạn chỉ giáo
Thanks
Bạn thử công thức này nhé
Mã:
=CHOOSE(MATCH(1,COUNTIF(D6,{"THPT DL*","THPT*","Chuyên*","THDL*"}),0),"THPT DL","THPT","Chuyên","THDL")
Góp ý: Đừng nhờ đích danh một người nào đó.
 
Trân trọng cảm ơn chỉ bảo của mọi người.
VBA thì hay nhưng liệu có cách nào xử lý với hàm IF và FIND ko nhỉ
@huuthang_bd: Vô cùng cảm ơn bạn đã suggest một option khác. Tuy nhiên, mình rất muốn thử nếu dùng IF và FIND sẽ ntn vì mình đang cố gắng bám theo yêu cầu để thực hiện.
 
Trân trọng cảm ơn chỉ bảo của mọi người.
VBA thì hay nhưng liệu có cách nào xử lý với hàm IF và FIND ko nhỉ
@huuthang_bd: Vô cùng cảm ơn bạn đã suggest một option khác. Tuy nhiên, mình rất muốn thử nếu dùng IF và FIND sẽ ntn vì mình đang cố gắng bám theo yêu cầu để thực hiện.
Bài này nếu muốn dùng IF thì bạn cứ IF nó 4 lần thôi mà, đâu cần FIND
Thân
 
Trân trọng cảm ơn chỉ bảo của mọi người.
VBA thì hay nhưng liệu có cách nào xử lý với hàm IF và FIND ko nhỉ
@huuthang_bd: Vô cùng cảm ơn bạn đã suggest một option khác. Tuy nhiên, mình rất muốn thử nếu dùng IF và FIND sẽ ntn vì mình đang cố gắng bám theo yêu cầu để thực hiện.
Ý bạn là chỉ dùng hàm IF và hàm FIND thôi à??? Có lẽ người ra đề chỉ biết mỗi cách dùng IF và FIND --=0

Mã:
=IF(D6="","N/A",IF(FIND("THPT DL",D6&"THPT DL")=1,"THPT DL",IF(FIND("THPT",D6&"THPT")=1,"THPT",IF(FIND("THDL",D6&"THDL")=1,"THDL",IF(FIND("Chuyên",D6&"Chuyên")=1,"Chuyên","N/A")))))
 
Ý bạn là chỉ dùng hàm IF và hàm FIND thôi à??? Có lẽ người ra đề chỉ biết mỗi cách dùng IF và FIND --=0

Mã:
=IF(D6="","N/A",IF(FIND("THPT DL",D6&"THPT DL")=1,"THPT DL",IF(FIND("THPT",D6&"THPT")=1,"THPT",IF(FIND("THDL",D6&"THDL")=1,"THDL",IF(FIND("Chuyên",D6&"Chuyên")=1,"Chuyên","N/A")))))

Vô cùng cảm ơn bạn :). @!##@#!^%
 
[
 
Lần chỉnh sửa cuối:
Các bạn cho mình hỏi.
Bây giờ mình có 1 cụm từ: " Công an Tỉnh'' dịch tiếng Nhật là 県の公安局 , '' Công an Thành phố '' dịch là 市の公安局.
Mình có " Công an Tỉnh Hải Dương dịch là " HAI DUONG 県の公安局 ".
Thành phố Hà Nội dịch là " HA NOI市の公安局",
Mình muốn hỏi là có hàm nào trong excel đảo vị trí từ " Công an Tỉnh Hải Dương " thành '' HAI DUONG 県の公安局'' ko ạ.
Mình có file excel tiếng Việt và tiếng Nhật. Nếu chỉ gõ tiếng Việt rồi bên cột tiếng Nhật nó sẽ tự nhảy sang kết quả thì có hàm nào làm được điều đó ko ạ.
Mình gửi file các bạn tham khảo.
Các bạn giúp mình với ạ.
Cảm ơn các bạn nhiều
 

File đính kèm

  • DICH DANH SÁCH TỈNH TRONG CẢ NƯỚC.xlsx
    10.1 KB · Đọc: 7
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2
Back
Top Bottom