Các phương pháp tách họ và tên đề nghị post ở đây

Liên hệ QC
Tách số ra khỏi chữ:

' chuoi là chuỗi cần tách
Dim chuoiKT(0 To 1) ' 0 sẽ là chuỗi số và 1 sẽ là chuỗi mẫu tự
chuoiKT(0) = chuoi
chuoiKT(1) = chuoi
For i = 1 To Len(chuoi)
Mid(chuoiKT(-IsNumeric(Mid(chuoi, i, 1))), i, 1) = " " ' ký tự không đúng dạng thì đổi thành khoảng trắng
Next i
chuoiKT(0) = Split(Application.Trim(chuoiKT(0)), " ")
chuoiKT(1) = Split(Application.Trim(chuoiKT(1)), " ")
 
Lần chỉnh sửa cuối:
RX chỉ hiệu quả khi điều kiện rất phức tạp
Nếu chuỗi chỉ là ký tự alpha và số thì RX chưa chắc đã ngắn gọn hơn

' chuoi là chuỗi cần tách
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "(\D+)|(\d+)"
For Each Match In .Execute(chuoi)
chuoiMT= chuoiMT & " " & Match.Submatches.Item(0)
chuoiSO= chuoiSO & " " & Match.Submatches.Item(1)
Next Match
MsgBox chuoiMT & vbNewLine & chuoiSO ' chú ý: cần Application.Trim
End With
 
Công thức được mà @@
Mã:
B2=LOOKUP(1E+36,--LEFT(A2,ROW(INDIRECT("1:"&LEN(A2)))))
C2=MID(A2,LOOKUP(10^10,ROW(INDIRECT("1:"&LEN(A2)))/--(ISNUMBER(--MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))=FALSE)),1)
D2=LOOKUP(1E+36,--RIGHT(A2,ROW(INDIRECT("1:"&LEN(A2)))))
hay quá bạn ơi, công thức đơn giản, dễ dùng, chỉ cần cắt khoản trắng ở ô nguồn nữa là kết quả ok hết, thanks
 
Giúp em với em muốn làm công thức với yêu cầu như này mà chưa làm đc:
A1=6.0Cột B1 chọn là A
A1=5.5Cột B1 chọn là B
A1=5.0Cột B1 chọn là C
A1=4.5Cột B1 chọn là D
A1=4.0Cột B1 chọn là E
 
Giúp em với em muốn làm công thức với yêu cầu như này mà chưa làm đc:
A1=6.0Cột B1 chọn là A
A1=5.5Cột B1 chọn là B
A1=5.0Cột B1 chọn là C
A1=4.5Cột B1 chọn là D
A1=4.0Cột B1 chọn là E

Bạn thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1")) Is Nothing Then
        Exit Sub
    Else
        Select Case Range("A1")
    Case Is = 60
        Range("B1").Value = "A"
    Case Is = 55
        Range("B1").Value = "B"
    Case Is = 50
        Range("B1").Value = "C"
    Case Is = 45
        Range("B1").Value = "D"
    Case Is = 40
        Range("B1").Value = "E"
    End Select
    End If
End Sub
 
Bài #467 liên quan gì đến tách chuỗi hay họ tên?
 
Thân ái chào anh chị và các bạn!
Xin giúp đỡ tôi vấn đề sau:
Trong ô A1 có nội dung "Anh chẳng trở về thì anh đi đi anh nhé!"
1_Trường hợp 1: ở ô A2 Chỉ lấy 2 từ đầu "Anh chẳng" trong nội dung nêu trên (ô A1)
Không xét đến ký tự mà chỉ luôn quy định lấy 02 từ đầu tiên
2_Trường hợp 2: ở ô A3 bỏ 2 từ đầu tiên chỉ lấy những từ còn lại sau khi đã bỏ 2 từ đầu tiên
Cụ thể sau khi đã bỏ 2 từ đầu tiên đi thì nội dung ô A3 sẽ lấy là :"trở về thì anh đi đi anh nhé!"
Mở rộng hơn ra nội dung ô có thể gồm nhiều từ nhưng đều lấy 02 từ đầu tiên và bỏ 02 từ đầu tiên đi
** Ghi chú: không xét đến ký tự mà chỉ xét đến từ.
Cho tôi hỏi có thể làm được như vấn đề tôi nêu không ạ? hay phải xét đến cả ký tự?
Xin cảm ơn!
 
Mã:
B1=TRIM(LEFT(SUBSTITUTE(TRIM(A1)," ",REPT(" ", 100)),150))
C1=MID(TRIM(A1),LEN(B1)+2,LEN(A1))
"Làm được" cái mốc xì. Bạn chưa biết thớt này, chuyên gia được voi đòi tiên, một khi có đáp án rồi rồi sẽ thêm 1 mớ đòi hỏi nữa.

Xem ở dưới đây, bài #10 (nới rộng yêu cầu), và bài #18 (đòi hỏi tốc độ)

 
"Làm được" cái mốc xì. Bạn chưa biết thớt này, chuyên gia được voi đòi tiên, hỏi vậy nhưng rồi sẽ thêm 1 mớ đòi hỏi nữa.

Xem ở dưới đây, bài #10 (nới rộng yêu cầu), và bài #18 (đòi hỏi tốc độ)
Em gửi bài xong mới để ý, lỡ rồi định xóa lại thôi..
 
"Làm được" cái mốc xì. Bạn chưa biết thớt này, chuyên gia được voi đòi tiên, một khi có đáp án rồi rồi sẽ thêm 1 mớ đòi hỏi nữa.

Xem ở dưới đây, bài #10 (nới rộng yêu cầu), và bài #18 (đòi hỏi tốc độ)

em gửi bài rồi anh phuoccam mới nói em biết, lần sau em rút kinh nghiệm ạ!
 
em gửi bài rồi anh phuoccam mới nói em biết, lần sau em rút kinh nghiệm ạ!
Tôi chưa nói đến chuyện nhiều bài.
Ở đây tôi chỉ mách cho bạn kia là giải pháp của bạn ấy chưa đạt đối với các yêu cầu khó khăn của bạn.
1. Thêm yêu cầu: được voi đòi tiên
2. Đòi công thức nhanh nhất: ăn mày đòi xôi gấc
 
hello all!
e có vđe về hàm này mong mọi ng giúp :

e có chuỗi ký tự sau : GP-12345-M1A-5-05

E muốn lấy ký tự : "12345-M1A" thì làm như thế nào?
dựa vào "-" để tách vì chuỗi đó dài ngắn khác nhau n e muốn lấy sau "-" thứ 1 đến trc "-" thứ 3

có thể sd hàm hoặc code(lặp lại nhiều dòng)

tks all!
 
hello all!
e có vđe về hàm này mong mọi ng giúp :

e có chuỗi ký tự sau : GP-12345-M1A-5-05

E muốn lấy ký tự : "12345-M1A" thì làm như thế nào?
dựa vào "-" để tách vì chuỗi đó dài ngắn khác nhau n e muốn lấy sau "-" thứ 1 đến trc "-" thứ 3

có thể sd hàm hoặc code(lặp lại nhiều dòng)

tks all!
Công thức
Mã:
=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",100),3),FIND("-",A1)+1,100))
 
Chào các bạn.
Để không dùng VBA, mình có vài công thức các bạn test thử thế nào nhé.
Giả sử ô A1 có chứa "Họ Chữ lót Tên"
Lấy Họ :
=LEFT(A4,FIND(" ",A4,1))

Lấy Họ và Chữ lót :
=LEFT(A4,FIND("*",SUBSTITUTE(A4," ","*",LEN(A4)-LEN(SUBSTITUTE(A4," ",""))))-1)

Lấy Tên :
=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Thân !

Bạn cho hỏi mình muốn tách lấy chữ lót và tên thì làm thế nào?
Ví dụ ô A1 chứa : Nguyễn Thị Kiều Diễm Minh Hương.
Mình muốn lấy hai từ cuối là Minh Hương có được không?
Cảm ơn.
 
Tôi học trên diễn đàn và làm đơn giản như thế nầy:
1. Tên: Dùng công cụ tìm kiếm và thay thế sẽ được tên.
2. Họ đệm: Có tên rồi thì dùng LEFT để cắt được họ đệm
TachTen.gif
 
Bạn cho hỏi mình muốn tách lấy chữ lót và tên thì làm thế nào?
Ví dụ ô A1 chứa : Nguyễn Thị Kiều Diễm Minh Hương.
Mình muốn lấy hai từ cuối là Minh Hương có được không?

Nếu tên người cụt lũn, không có đệm (lót) thì lấy răng? ví dụ như Ngô Diễm?
 
Web KT
Back
Top Bottom