Nhờ sắp xếp theo Tên trong cùng 1 cột (1 người xem)

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

thanhlp2007

Thành viên thường trực
Tham gia
24/10/07
Bài viết
201
Được thích
11
Chào các AC. Mình có 1 file đính kèm, nhờ các AC giúp đỡ.
Ý của mình là trong 1 cell có Họ và tên. Mình muốn sắp sếp theo tên, chứ không phải theo Họ. Nếu không được thì các AC cũng có thể tách Họ riêng và Tên riêng cũng được. Nhưng mình chỉ muốn sắp xếp trong cùng 1 cell mà thôi. Mình chỉ VD trong file có vài người thôi các AC. Chứ dữ liệu của mình nhiều lắm. Mình dùng EX 2003. Mong được chỉ giáo. Thanks.
 

File đính kèm

Chào các AC. Mình có 1 file đính kèm, nhờ các AC giúp đỡ.
Ý của mình là trong 1 cell có Họ và tên. Mình muốn sắp sếp theo tên, chứ không phải theo Họ. Nếu không được thì các AC cũng có thể tách Họ riêng và Tên riêng cũng được. Nhưng mình chỉ muốn sắp xếp trong cùng 1 cell mà thôi. Mình chỉ VD trong file có vài người thôi các AC. Chứ dữ liệu của mình nhiều lắm. Mình dùng EX 2003. Mong được chỉ giáo. Thanks.
Sao bạn không tách tên ra, Sort theo tên rồi nối lại là OK mà.
Công thức tách tên trên diễn đàn này có nhiều lắm, bạn tìm trên diễn đàn nhé!
 
=TRIM(RIGHT(SUBSTITUTE($A2," ",REPT(" ",255)),255)). Cái này tách tên đc kg vậy bạn.
Còn cách nào tách tên ngắn nữa kg ? Mình muốn mở rộng thêm công thức
 
=TRIM(RIGHT(SUBSTITUTE($A2," ",REPT(" ",255)),255)). Cái này tách tên đc kg vậy bạn.
Còn cách nào tách tên ngắn nữa kg ? Mình muốn mở rộng thêm công thức


Mình có cách dùng hàm lập bằng VBA bạn tham khảo xem thế nào nhé ^^ :


[/CODE]
Mã:
Function TachHo(hoten As String) As String
hoten = Trim(hoten)
If hoten = "" Then
TachHo = ""
Else
vt = InStrRev(hoten, " ", Len(hoten))
If vt = 0 Then
TachHo = ""
Else
TachHo = Trim(Mid(hoten, 1, vt))
End If
End If
End Function



[/CODE]
Mã:
Function TachTen(hoten As String) As String
hoten = Trim(hoten)
If hoten = "" Then
TachTen = ""
Else
vt = InStrRev(hoten, " ", Len(hoten))
If vt = 0 Then
TachTen = hoten
Else
TachTen = Mid(hoten, vt + 1)
End If
End If
End Function
Mã:
Sub TachHoTen()
rd = Selection.Row
sr = Selection.Rows.Count
rc = rd + sr - 1
c = Selection.Column
sc = Selection.Columns.Count
If sc > 1 Then
MsgBox "Ban chon " & sc & " cot. Ban phai chon lai 1 cot", vbOKOnly, "Thong bao"
Exit Sub
End If
Range(Cells(rd, c), Cells(rc, c)).Insert Shift:=xlToRight
Range(Cells(rd, c), Cells(rc, c)).Insert Shift:=xlToRight
For r = rd To rc
Cells(r, c) = TachHo(Cells(r, c + 2))
Cells(r, c + 1) = TachTen(Cells(r, c + 2))
Next
Range(Cells(rd, c + 2), Cells(rc, c + 2)).Delete Shift:=xlToLeft
End Sub
 
Lần chỉnh sửa cuối:
=TRIM(RIGHT(SUBSTITUTE(TRIM($A2)," ",REPT(" ",255)),255))
mình bổ xung thêm cái nì.
vì nó sẽ cắt được ký tự trắng ở phía sau của tên.
 
chào các AC. Sao tại C5 = TRIM(RIGHT(SUBSTITUTE($A5," ",REPT(" ",100)),100)) thì nó không hiện tên được vậy các bạn.
C6 cũng kg hiện tên, C7, C8, C9 thì nó hiện tên mà C5 nó không hiện tên. Mong được tư vấn giúp
 
chào các AC. Sao tại C5 = TRIM(RIGHT(SUBSTITUTE($A5," ",REPT(" ",100)),100)) thì nó không hiện tên được vậy các bạn.
C6 cũng kg hiện tên, C7, C8, C9 thì nó hiện tên mà C5 nó không hiện tên. Mong được tư vấn giúp

Sửa công thức thành vầy nhé
Mã:
= TRIM(RIGHT(SUBSTITUTE([COLOR=#ff0000]TRIM([/COLOR]A5[COLOR=#ff0000])[/COLOR]," ",REPT(" ",100)),100))
 

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

Back
Top Bottom