Anh chị chỉ giúp e với làm sao để tách riêng
VD:thành Nguyến Thị Minh ở một cột và Thu ở một cột
sao cách làm ngày mình thấy ngược đời quá ah nhe! nếu tách thì chỉ tách riêng tên ra một cột thôi sao chữ Thị => ThuAnh chị chỉ giúp e với làm sao để tách riêng
VD:thành Nguyến Thị Minh ở một cột và Thu ở một cột
Có gì đâu mà ngược đời!sao cách làm ngày mình thấy ngược đời quá ah nhe! nếu tách thì chỉ tách riêng tên ra một cột thôi sao chữ Thị => Thu
Công thức này:Tui nhớ ở đâu đó trên GPE có công thức này:
Giả sử ô A1 chứa tên đầy đủ: Nguyễn Thị Minh Thu
Để tách phần tên ra (Thu), dùng công thức:=TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))Phần còn lại của tên (Nguyễn Thị Minh), dùng công thức:=TRIM(LEFT(A1, LEN(A1)-LEN(C1)-1))Góp chút cho vui ngày đầu năm.
Chủ đề này tuy không mới nhưng xem ra còn nhiều cách làm mới.
Mình xin bổ sung bài của Volga tại sheet ví dụ 1 và tham gia thêm 1 cách khác tại sheet ví dụ 2 trong File đính kèm.
Chúc các bạn năm mới vui vẻ !
Chủ đề này tuy không mới nhưng xem ra còn nhiều cách làm mới.
Mình xin bổ sung bài của Volga tại sheet ví dụ 1 và tham gia thêm 1 cách khác tại sheet ví dụ 2 trong File đính kèm.
Chúc các bạn năm mới vui vẻ !
Cách tách tên ở ví dụ 1 của bạn chỉ áp dụng đúng khi cả danh sách họ tên phải có cùng số chữ, và phải cố định là 3 chữ!? Xem ra có vẻ vô lý nhỉ!? . Nếu danh sách ngẫu nhiên mà làm theo cách này thì không làm được. Tôi lấy ví dụ danh sách này nhé:
Tương tự, bạn hãy dùng cách thứ hai của bạn (ví dụ 2) để tách họ tên theo danh sách mình đưa cho bạn rồi xem thử bạn bị sai chỗ nào nhé!|Họ tên| Tên cần tách ra
1|TRẦN MINH| MINH
2|NGUYỄN THỊ NGỌC NỮ| NỮ
3|LÊ HỒNG LĨNH| LĨNH
4|CÔNG TẰNG TÔN NỮ TRÀ MI NHẬT NGUYỆT THẦN KIẾM| KIẾM
5|PHẠM NGUYỄN MINH CÔNG HẰNG| HẰNG
6|NGUYỄN THỊ MỸ NGHIÊNG| NGHIÊNG
7|LÝ RỰC| RỰC
8|.....
Cảm ơn ca_dafi ! Đúng là không ổn, mình thiển cận quá không lường hết tình huống.
Nhưng bổ sung thêm công thức tìm dữ liệu cột cuối = LOOKUP(2;1/(1-ISBLANK($K9:$V9));$K9:$V9)) thì OK và mình cũng đã sửa lại sub theo kiểu VBD các bạn góp ý cho mình nhé.
Cảm ơn Bạn Ndu đã giúp công thức này.
@ Tất cả các bạn: Mình làm cho vui thôi, vì đối với mình đó cũng là một cách học tập, mong các bạn đừng trách vì làm mất thì giờ của bạn.
Thân!
Cách tách tên ở ví dụ 1 của bạn chỉ áp dụng đúng khi cả danh sách họ tên phải có cùng số chữ, và phải cố định là 3 chữ!? Xem ra có vẻ vô lý nhỉ!? . Nếu danh sách ngẫu nhiên mà làm theo cách này thì không làm được. Tôi lấy ví dụ danh sách này nhé:
Tương tự, bạn hãy dùng cách thứ hai của bạn (ví dụ 2) để tách họ tên theo danh sách mình đưa cho bạn rồi xem thử bạn bị sai chỗ nào nhé!|Họ tên| Tên cần tách ra
1|TRẦN MINH| MINH
2|NGUYỄN THỊ NGỌC NỮ| NỮ
3|LÊ HỒNG LĨNH| LĨNH
4|CÔNG TẰNG TÔN NỮ TRÀ MI NHẬT NGUYỆT THẦN KIẾM| KIẾM
5|PHẠM NGUYỄN MINH CÔNG HẰNG| HẰNG
6|NGUYỄN THỊ MỸ NGHIÊNG| NGHIÊNG
7|LÝ RỰC| RỰC
8|.....
Cảm ơn ca_dafi ! Đúng là không ổn, mình thiển cận quá không lường hết tình huống.
Nhưng bổ sung thêm công thức tìm dữ liệu cột cuối = LOOKUP(2;1/(1-ISBLANK($K9:$V9));$K9:$V9)) thì OK và mình cũng đã sửa lại sub theo kiểu VBD các bạn góp ý cho mình nhé.
Cảm ơn Bạn Ndu đã giúp công thức này.
@ Tất cả các bạn: Mình làm cho vui thôi, vì đối với mình đó cũng là một cách học tập, mong các bạn đừng trách vì làm mất thì giờ của bạn.
Thân!
Tách tên này có tạo ra cột phụ không nhỉ! thường thì mình thấy tách tên bằng VBA thì hay tạo ra cột phụ lém.
Sub TachTen2()
Dim Rcuoi As Long
Rcuoi = [B65536].End(xlUp).Row
[C4:Z65500].Clear
Range("B4:B" & Rcuoi).Copy Destination:=[Z4]
[Z4].CurrentRegion.TextToColumns Destination:=Range("K4"), _
DataType:=xlDelimited, Space:=True, Other:=False, _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1))
For i = 4 To Rcuoi
If Cells(i, 2) > 0 Then
Cells(i, 4) = Cells(i, 25).End(xlToLeft)
Cells(i, 3).FormulaR1C1 = "=LEFT(RC2,LEN(RC2)-LEN(RC4))": Cells(i, 3).Value = Cells(i, 3)
End If
Next
[K:Z].Clear: [C3].Select
End Sub
Sub TachTen()
Dim Rcuoi As Long, i As Long, vitri As Long, hoten As String
Rcuoi = [B65536].End(xlUp).Row
[C4:D65500].Clear
For i = 4 To Rcuoi
hoten = Trim(Cells(i, 2))
vitri = InStrRev(hoten, " ")
If vitri > 0 Then
Cells(i, 4) = Mid(hoten, vitri + 1)
Cells(i, 3) = Trim(Left(hoten, vitri))
Else
Cells(i, 4) = hoten
End If
Next
End Sub
Xin nói thêm: Việc tách họ tên không ai dùng Text to Columns để làm cảLoay hoay mấy ngày với TextToColumns và các cột phụ thế mà chỉ với một câu InstrRev của Bác PhamDuyLong ! bao công lao của mình đổ xuống sông xuống bể hết...
Nói đùa thôi, em rất vui vì qua bài này các bác đã giúp em nhiều điều bổ ích. Cảm ơn các Bác rất nhiều !