Hàm tách họ tên ở một cột thành 2 cột họ và tên trong Ễcl

Chia sẻ bởi Nguyễn Xuân Thắng | Ngày 14/10/2018 | 29

Chia sẻ tài liệu: Hàm tách họ tên ở một cột thành 2 cột họ và tên trong Ễcl thuộc Tư liệu tham khảo

Nội dung tài liệu:

Tách họ và tên trong cùng một cột trên bảng tính Excel




Khi nhập liệu vào bảng tính Excel, thông thường ta nhập cả họ và tên vào cùng một ô. Tuy nhiên, có khi sau đó ta cần phải tách riêng tên ra khỏi họ và tên đệm, nếu làm thủ công bằng thao tác sao chép rồi dán qua ô khác thì sẽ rất bất tiện. Ngoài ra có những lúc bạn phải xắp xếp lại theo thứ tự A,B,C,... Nếu sử dụng hàm Right kết hợp với một vài hàm khác thì cũng có thể cho ra kết quả như bạn muốn, nhưng trong một số trường hợp sẽ cho kết quả không chính xác. Có một phương pháp tối ưu hơn sẽ giúp bạn hoàn thành tốt công việc này, cách thực hiện cũng khá đơn giản như sau: - Trên bảng tính chứa cột họ tên cần tách, bạn chọn menu Tools > Macro > Visual Basic Editor, lập tức xuất hiện chương trình Microsoft Visual Basic. - Tiếp theo, bạn nhấn menu Insert và chọn Module sẽ xuất hiện một cửa sổ soạn thảo.
Code:
Private Function Tachten(ten As String, lg As Integer)
Dim j As Integer
Name = Trim(ten)
For j = Len(Name) To 1 Step -1
If Mid(Name, j, 1) = " " Then
If lg = "1" Then
Tachten = Right(Name, Len(Name) - j)
Else
Tachten = Left(Name, j)
End If
Exit For
End If
Next
End Function
Bạn nhập đoạn mã lệnh sau vào cửa sổ soạn thảo: - Bạn nhấn Ctrl+S để lưu lại và quay trở về bảng tính Excel. - Bây giờ để tiến hành tách riêng họ và tên đệm vào một ô mới, bạn đặt con trỏ tại ô mới chứa họ và tên đệm rồi nhập vào công thức =TachTen(B3,0) và nhấn Enter sẽ thấy ngay kết quả. - Để tách riêng tên vào một ô mới, bạn đặt con trỏ tại ô sẽ chứa tên cần tách và nhập vào công thức =TachTen(B3,1) rồi nhấn Enter là xong. Ghi chú: B3 chính là địa chỉ của ô ban đầu chứa cả họ, tên đệm và tên. DƯƠNG VŨ (Q.1, TP.HCM)


Cách 2: Không dùng vòng For. Dùng cho 2 trường hợp tách Họ hoặc Tên.
Code:
Function TachHoTen(ByVal HoVaTen As String, Optional TachTen As Boolean = True) As String
Dim Pos_Right As Integer
If HoVaTen = "" Then GoTo EndFunc
HoVaTen = Trim(HoVaTen) `Xoá khoảng trống hai bên của "HoVaTen"

` Tìm vị trí của kỳ tự " " cuối cùng trong chuỗi HoVaTen
Pos_Right = InStrRev(HoVaTen, " ")
`Kiểm tra hợp lệ
If Pos_Right = 0 Or Pos_Right - 1 < 0 Or Pos_Right + 1 > Len(HoVaTen) Then
GoTo EndFunc:
End If

If TachTen Then
TachHoTen = Mid(HoVaTen, Pos_Right + 1)
Else
TachHoTen = Left(HoVaTen, Pos_Right - 1)
End If

EndFunc:
End Function
=TachHoTen("Nguyễn Duy Khánh"). Kết quả là "Khánh". =TachHoTen("Nguyễn Duy Khánh",False). Kết quả là "Nguyễn Duy". Hàm InStrRev chỉ dùng từ Office2000(v9) trở lên.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Xuân Thắng
Dung lượng: 4,70KB| Lượt tài: 3
Loại file: rar
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)