Có phải cái chữ này:Trong cùng 1 ô.VD: [FONT=.VnTime]chÞ h»ng -71 chïa l¸ng, dong da[/FONT] bây giờ tớ muốn tách ra lam 4 cột mà không có cách nao, giup minh voi
Bạn muốn tách thành 4 cột như thế nào ? Tách từ chữ nào?chị hằng -71 chùa láng, dong da
Có phải ý bạn như thế này không ?Trong cùng 1 ô.VD: "Chị Hằng -71 chùa Láng, Đống Đa" bây giờ tớ muốn tách ra lam 4 cột mà không có cách nao, giup minh voi
mượn đở file của pac ca_dafi , thì em đã thêm vào phím tắt được rồi nhỉ:Bạn xem file đính kèm. File này làm bằng công thức. Cái này có nhiều trên GPE mình lắm bạn à!
Function TachTenPo(HoTen As String, Optional Vitri As Byte = 1) As String
'' Po_PiKachu
''Vtri = 1: Ho ; Vtri = 2: TenLot ; Vtri = 3: Ten ; Vtri = 4: HoTenlot
Dim arr() As String
Dim K As Long
arr() = Split(HoTen, " ")
K = UBound(arr)
TachTenPo = Choose(Vitri, arr(0), Trim(Replace(Replace(HoTen, arr(K), ""), arr(0), "")), _
arr(K), Trim(Replace(HoTen, arr(K), "")))
End Function
Private Function Tach(Str as string, SoTuCanTach as integer) as string
str = trim(str)
Dim Mang() as string
mang = split(str," ")
if sotucantach>ubound(mang)+1 then exit function
Dim I as integer
str = ""
For i = ubound(mang) -sotucantach to ubound(mang)
str = str & mang(i) & " "
next
Tach = trim(str)
end function
Public Function tachten(ten As String) As String
Dim i As Integer
ten = Trim(ten)
For i = Len(ten) To 1 Step -1
If Mid(ten, i, 1) = " " Then
tachten = Left(ten, i)
End If
Next
End Function
Public Function hoten(ch As String, ten As Boolean)
Dim kq As Variant
vt = 0
For i = 0 To Len(ch) - 1
If Mid(ch, i + 1, 1) = " " Then vt = vt + 1
Next
kq = Split(ch, " ")
If ten Then
hoten = kq(vt)
Else
hoten = kq(0)
End If
End Function
Public Function hoten(ch As String, ten As Integer) As String
Dim kq As Variant, vt, i As Long
vt = 0
For i = 0 To Len(ch) - 1
If Mid(ch, i + 1, 1) = " " Then vt = vt + 1
Next
kq = Split(ch, " ")
Select Case ten
Case Is = 1
hoten = kq(0)
Case Is = 2
For i = 1 To vt - 1
hoten = IIf(Len(kq(i)) > 0, hoten & kq(i) & " ", hoten)
Next i
Case Is = 3
hoten = kq(vt)
End Select
End Function
1. Họ : =LEFT(TRIM(A1),FIND(" ",A1)-1)
2. Đệm : =TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)),100,LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)))-200))
3. Tên : =TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)),100))
E Thử rồi nhưng vẫn bị báo lỗi như này: #NAMEHọ tên thường nhập chung 1 cột cho nhanh. Sau đó ta có thể tách riêng tên ra 1 cột. Nhưng có lúc chúng ra cần tách ra 2 cột: cột họ, cột tên. Đây là 2 làm làm công việc đó:
'======================
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
'====================
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
'===================
Bạn sử dụng hàm này bình thường như các hàm khác của Excel, nhưng nếu bạn cần tách họ tên thành 2 cột riêng biệt thì bạn phải thực hiện một loạt các thao tác sau:
1. tách họ, tách tên trên 2 cột phụ
2. chèn thêm cột bên trái cột họ tên
3. Copy 2 cột họ tên mới tách và dán bằng Paste Special - Value trở về nơi cũ.
Để làm nhanh các công việc đó, bạn có thể sử dụng thủ tuc TachHoTen.
Sử dụng thủ tục này như sau:
1. Chọn tất cả các ô chứa họ tên, kể cả ô chứa tiêu đề trên đầu.
2. Chạy Sub TachHoTen.
VBA sẽ làm thay cho bạn các việc còn lại. Lưu ý bạn là số cột trong vùng chọn phải là 1, nếu lớn hơn 1 VBA không thực hiện.
'====================
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
'==============
Bạn có thể tham khảo trong tập tin TachHoTen.zip
Bạn có Enable Macros chưa vậy ?E Thử rồi nhưng vẫn bị báo lỗi như này: #NAME
Dùng công thức này thử xem:Để sắp theo mẫu tự A,B,C nên cần phải tách thành cột tên riêng. Nhờ các bạn giúp đỡ bằng cách sử dụng công thức như thế nào? Cám ơn nhiều.
F3 =TRIM(RIGHT(SUBSTITUTE(TRIM($B3)," ",REPT(" ",LEN($B3))),LEN($B3)))
E3 =TRIM(SUBSTITUTE($B3,$F3,""))
Lần sau bạn cố gắng tìm ở diễn đàn nhé.Em có 1 file dữ liệu như file đính kèm. Em cần tách ra thành 2 cột khác nhau để lấy phần Họ và tên, bỏ phần chữ "chia sẻ ý kiến". Các anh chị xem có cách nào hay công thức gì mà có thể làm nhanh giúp em với vì file dữ liệu của em rất nhiều mà click chọn xóa từng ô thì mất thời gian rất nhiều...
Cảm ơn rất nhiều.
[COLOR=black][FONT=Tahoma]Sub TachHoVaTen()[/FONT][/COLOR]
[FONT=Tahoma][COLOR=black]If WorksheetFunction.CountA(Selection) = 0 Then[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black] MsgBox "Vung chon khong co du lieu !"[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black] Exit Sub[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]End If[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]Selection.Offset(0, 1).Select[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]Selection.Value = Selection.Offset(0, -1).Value[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]Range(Selection.Offset(0, 1), Selection.Offset(0, 100)).ClearContents[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]For Each Rg In Selection[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black][B] Rg.TextToColumns Destination:=Rg[/B] '<--- code chinh chi co nhieu day.[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]Next[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]MsgBox "Xong !"[/COLOR][/FONT]
[FONT=Tahoma][COLOR=black]End Sub[/COLOR][/FONT]
Nếu chỉ riêng một trường hợp này mà thôi, thì chắc chắc là có cách, dùng công thức cũng được mà dùng VBA cũng được.Tôi có chuỗi họ tên: NguyễnThịThanhThuỷ
Muốn thêm ký tự trắng vào giữa họ, đệm, tên để trở thành Nguyễn Thị Thanh Thuỷ thì phải làm thế nào?
(Dùng VBA và dùng Công thức)
Cảm ơn các bác đã giúp đỡ !
Cái này Em nghĩ cao thủ VBA có thể làm được Anh à. Em thấy có thể tách theo quy luật sau:Nếu chỉ riêng một trường hợp này mà thôi, thì chắc chắc là có cách, dùng công thức cũng được mà dùng VBA cũng được.
Tuy nhiên, nếu bạn muốn tìm cách nào đó để có thể áp dụng cho mọi trường hợp tên bị viết dính nhau như thế, thì thua!
Bởi vì, họ tên (nhất là tiếng Việt) chả có cái quy luật nào để mà tách ra cả.
Cái này Em nghĩ cao thủ VBA có thể làm được Anh à. Em thấy có thể tách theo quy luật sau:
Quét từ trái sang phải, nếu gặp ký tự nào là chữa HOA thì thêm 1 khoảng trắng phía trước. Anh thấy thế nào?
Function AddSpace(MyStr As String) As String
Dim Arr, TmpStr, Chrt, i
Arr = "ABCDEGHIKLMNOPQRSTUVXY"
MyStr = Trim(MyStr)
TmpStr = UCase(Left(MyStr, 1))
With Application
For i = 2 To Len(MyStr)
Chrt = Mid(MyStr, i, 1)
TmpStr = TmpStr & IIf(.IsNumber(.Find(Chrt, Arr, 1)), " ", "") & Chrt
Next
End With
AddSpace = TmpStr
End Function
Anh PTM ơi, Mình có thể dùng quét bằng cáh: Quét từ trái sang phải nếu gặp ký tự nào có CODE(text)<=90 thì thêm dấu cách phía trước được không Anh?
Có thể như thế nàyTôi có chuỗi họ tên: NguyễnThịThanhThuỷ
Muốn thêm ký tự trắng vào giữa họ, đệm, tên để trở thành Nguyễn Thị Thanh Thuỷ thì phải làm thế nào?
(Dùng VBA và dùng Công thức)
Cảm ơn các bác đã giúp đỡ !
Public Function tach(vung As String) As String
Dim chu, tam, thay As String
Dim i, J As Integer
For i = 2 To Len(vung)
chu = Mid(vung, i, 1)
If chu = UCase(chu) And InStr(1, tam, chu) = False Then tam = tam & chu
Next
For J = 1 To Len(tam)
thay = Mid(tam, J, 1)
vung = Replace(vung, thay, " " & thay)
Next
tach = Trim(vung)
End Function
Function AddSpace(MyStr As String) As String
Dim Arr, TmpStr, Chrt, i
Arr = "ABCDEGHIKLMNOPQRSTUVXY"
Arr = Arr & ChrW(193) & ChrW(7848) & ChrW(194) & ChrW(272)
MyStr = Trim(MyStr)
TmpStr = UCase(Left(MyStr, 1))
For i = 2 To Len(MyStr)
Chrt = Mid(MyStr, i, 1)
TmpStr = TmpStr & IIf(InStr(1, Arr, Chrt), " ", "") & Chrt
Next
AddSpace = TmpStr
End Function
Nhiều người dùng VBA rồi, bây giờ tôi làm bằng công thức. Chỉ để tham khảo thôi chứ để ứng dụng thì không tốt lắm do có nhiều name và công thức mảng.Tôi có chuỗi họ tên: NguyễnThịThanhThuỷ
Muốn thêm ký tự trắng vào giữa họ, đệm, tên để trở thành Nguyễn Thị Thanh Thuỷ thì phải làm thế nào?
(Dùng VBA và dùng Công thức)
Cảm ơn các bác đã giúp đỡ !
Nói thật nhé, các bác các bạn để thời giờ suy nghĩ ra cái khác đi, còn hay hơn.Nếu chỉ riêng một trường hợp này mà thôi, thì chắc chắc là có cách, dùng công thức cũng được mà dùng VBA cũng được.
Tuy nhiên, nếu bạn muốn tìm cách nào đó để có thể áp dụng cho mọi trường hợp tên bị viết dính nhau như thế, thì thua!
Bởi vì, họ tên (nhất là tiếng Việt) chả có cái quy luật nào để mà tách ra cả.
Thì bỏ hàm SUBSTITUTE đi chứ gì nữa:Nhưng bây giờ em muốn bổ sung khoảng cách giữa các từ nữa tức là sẽ có thêm các ô cell khoảng trắng giữa các từ thì làm thế nào ạ?
Có thể dùng hàm tự tạo nàyEm muốn tách chuỗi như sau
Nguyễn Văn Anh -> trả về kết quả: Nguyễn Văn
Nguyễn Anh -> trả về kết quả: Nguyễn
Trần lê văn Dũng trả -> về kết quả: Trần Lê Văn
Public Function tach(Cll As Range) As String
tach = Left(Cll, InStrRev(Cll, " ") - 1)
End Function
Em muốn tách chuỗi như sau
Nguyễn Văn Anh -> trả về kết quả: Nguyễn Văn
Nguyễn Anh -> trả về kết quả: Nguyễn
Trần lê văn Dũng trả -> về kết quả: Trần Lê Văn
Công thức này:Em muốn tách chuỗi như sau
Nguyễn Văn Anh -> trả về kết quả: Nguyễn Văn
Nguyễn Anh -> trả về kết quả: Nguyễn
Trần lê văn Dũng trả -> về kết quả: Trần Lê Văn
=TRIM(LEFT(SUBSTITUTE(TRIM($A2)," ",REPT(" ",LEN(TRIM($A2)))),LEN(TRIM($A2))*(LEN(TRIM($A2))-LEN(SUBSTITUTE(TRIM($A2)," ","")))))
Chưa đúng yêu cầuMình đã làm rồi, coppy hàm từ quyển sách Microsoft Excel 2007 Bible, bạn xem file đính kèm,
Họ tên thường nhập chung 1 cột cho nhanh. Sau đó ta có thể tách riêng tên ra 1 cột. Nhưng có lúc chúng ra cần tách ra 2 cột: cột họ, cột tên. Đây là 2 làm làm công việc đó:
'======================
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
'====================
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
'===================
Bạn sử dụng hàm này bình thường như các hàm khác của Excel, nhưng nếu bạn cần tách họ tên thành 2 cột riêng biệt thì bạn phải thực hiện một loạt các thao tác sau:
1. tách họ, tách tên trên 2 cột phụ
2. chèn thêm cột bên trái cột họ tên
3. Copy 2 cột họ tên mới tách và dán bằng Paste Special - Value trở về nơi cũ.
Để làm nhanh các công việc đó, bạn có thể sử dụng thủ tuc TachHoTen.
Sử dụng thủ tục này như sau:
1. Chọn tất cả các ô chứa họ tên, kể cả ô chứa tiêu đề trên đầu.
2. Chạy Sub TachHoTen.
VBA sẽ làm thay cho bạn các việc còn lại. Lưu ý bạn là số cột trong vùng chọn phải là 1, nếu lớn hơn 1 VBA không thực hiện.
'====================
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
'==============
Bạn có thể tham khảo trong tập tin TachHoTen.zip
cái này ăn sẵn lại hay, mà lại đơn giản....thanks- Tải cái này về và xem hướng dẫn kèm theo để cài đặt.
- Chạy ếch xèo lên vào Format -> TiengViet-TCVN -> Tach gop ho ten.
- Chý ú : Insert thêm 1 cột để phần tên tách ra không đè lên cột bên cạnh.
View attachment 2384
Cái này cần gì đến hàm đâu bạn, nếu chỉ có thế bạn làm như sau:Mình có 1 cột đã được ghép 2 tên với nhau, ví dụ như An/Nam. Bây giờ mình muốn tách tên An ra 1 cột, tên Nam ra 1 cột thì phải dùng công thức như thế nào? Mong các bạn giúp đỡ. Xin cám ơn!
Cám ơn bạn khoavu87, nhưng mình muốn nó tự động làm việc, giống như dùng công thức ấy
=LEFT(C1,FIND("/",C1)-1)
=SUBSTITUTE(C1,D1&"/","")
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 !
Phiền các bác giải thích cho em công thức bôi đậm này với, đặc biệt là dấu * là gì ah?
Cấu trúc mà bạn nói ấy được phát biểu và định nghĩa thế nào? Tên 4 từ thì tách làm 2 cột, mỗi cột 2 từ chăng?gaIT có một vấn đề nhỏ cần thọ giáo mọi người. Bây giờ gaIT muốn tách tên và họ theo cấu trúc như thế này thành 2 cột khác nhau. Mọi người xem file đính kèm và hỗ trợ gaIT giúp nha. Thanks mọi người!
gaIT có một vấn đề nhỏ cần thọ giáo mọi người. Bây giờ gaIT muốn tách tên và họ theo cấu trúc như thế này thành 2 cột khác nhau. Mọi người xem file đính kèm và hỗ trợ gaIT giúp nha. Thanks mọi người!
Từ đó đến giờ mới thấy có cái quy định quái dị thế này! Hỏi bạn nha:tách thỏa 2 điều kiện như thế này:
1. Tên 4 -7 từ thì cột tên vẫn là 2 từ, số còn lại là học và tên đệm
2. Tên 3 từ, nếu tên đệm là "Văn" hay "Thị" thì tách theo họ (vd: Lâm Đăng Khoa tách ra là Lâm (họ) - Đăng Khoa (tên). Còn Lâm Văn Khoa, tách ra là Lâm Văn (họ) - Khoa (tên)). Tương tự với lên lót là "Thị".
Chính vì như vậy mới thực sự nhức đầu...hy vọng nhận được sự giúp đỡ từ mọi người! thanks...
tách thỏa 2 điều kiện như thế này:
1. Tên 4 -7 từ thì cột tên vẫn là 2 từ, số còn lại là học và tên đệm
2. Tên 3 từ, nếu tên đệm là "Văn" hay "Thị" thì tách theo họ (vd: Lâm Đăng Khoa tách ra là Lâm (họ) - Đăng Khoa (tên). Còn Lâm Văn Khoa, tách ra là Lâm Văn (họ) - Khoa (tên)). Tương tự với lên lót là "Thị".
Chính vì như vậy mới thực sự nhức đầu...hy vọng nhận được sự giúp đỡ từ mọi người! thanks...
=REPLACE(A2,1,IF(LEN(A2)-LEN(SUBSTITUTE(A2," ",""))<3,IF(ISERR(FIND(" Văn",A2)),IF(ISERR(FIND(" Thị",A2)),FIND(" ",A2),FIND(" Thị",A2)+4),FIND(" Văn",A2)+4),FIND("/",SUBSTITUTE(A2," ","/",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))),"")
=LEFT(A2,LEN(A2)-LEN(C2)-1)
Thực tế, làm công thức thì không nhức đầu, mà nhức đầu ở quy định tách họ tên của bạn (bởi vì nó chẳng theo một chuẩn/quy định nào cả - không phân biệt được Tên, Tên đệm)
Tôi làm một giải pháp đáp ứng yêu cầu cho bạn & tôi cho đó là tào lao:
Bắt đầu tại C2, tách tên:
Tại B2, tách họ & tên đệm:PHP:=REPLACE(A2,1,IF(LEN(A2)-LEN(SUBSTITUTE(A2," ",""))<3,IF(ISERR(FIND(" Văn",A2)),IF(ISERR(FIND(" Thị",A2)),FIND(" ",A2),FIND(" Thị",A2)+4),FIND(" Văn",A2)+4),FIND("/",SUBSTITUTE(A2," ","/",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))),"")
Xem thêm filePHP:=LEFT(A2,LEN(A2)-LEN(C2)-1)
Hổng biết VN mình có ai tên Văn Văn hoặc Văn Trần Văn không nhỉ?
Ẹc... Ẹc...
Giả sử chuỗi gốc nằm tại ô A1, bạn nhập công thức sau xem có được không:Giúp mình với mình muốn tách tên người hưởng thụ và số invoice No từ chuỗi ký tự như sau:
BENEFICIARY : CONG TY HANOI CHARGE : VND 11000 (DEBIT A/C 2003) INV NO.0007114 AND 0007116 DOC NO.3179575
cái mình muốn lấy là: CONG TY HANOI
và: 0007114 AND 0007116
Các ký tự mình gạch chân là những kỹ tự cố định.
Bạn nào giúp mình với chứ ngày nào cũng ngồi cut paste một đống giao dịch chắc mình chết quá à.
Cảm ơn nhìu nhìu!
Bạn muốn tách lấy cái gì trong những chuỗi đó?Em có file này, xin nhờ các pác tách tên giúp, vì nhiều ký tự quá, em dùng thử macro nhưng không ăn thua
Nếu dữ liệu chuẩn như thế, bạn chơi thử code này xem saoEm có file này, xin nhờ các pác tách tên giúp, vì nhiều ký tự quá, em dùng thử macro nhưng không ăn thua
ThânPublic Function Ten(Cll) As String
Ten = Left(Cll, InStr(1, Cll, ":") - 8)
End Function
Nếu dữ liệu của bạn có cấu trúc đúng như vậy, xem file đính kèm.Chào các bạn mình đã đôch qua nhiều bài viết rất hay của các bạn.
Nhưng mình chưa biết áp dụng. Minh có một ví dụ như thế này mong các bạn giúp đỡ. Cám ơn nhiều
1, Nhập kho vật liệu hàn của công ty B - Kho nhà máy
2, Nhập kho thép của công ty C - Kho Phú Tài
3, Nhập kho góc của công ty D - Kho Anh Tú
Mình muốn tách riêng tên lý do, tên công ty, kho ra 3 cột khác nhâu thì phải làm thế nào?
( Ví dụ 1 : Lý do = Nhập kho vật liệu hàn, Tên Công ty = Công ty B, kho = Ko nhà máy)
Mong các bạn
Nếu dữ liệu của bạn có cấu trúc tương tự như ví dụ, xem file đính kèm nhé.Em muốn tách phần họ và tên, chức danh ra 1 cột riêng nhau
TênEm muốn tách phần họ và tên, chức danh ra 1 cột riêng nhau
=LEFT(B3,FIND("Chức vụ",B3)-2)
=MID(B3,FIND("Chức vụ",B3)+9,FIND("Công ty",B3)-FIND("Chức vụ",B3)-11)
Giả sử ô A1 chứa họ và têncó cách nào tách riêng Họ-------chữ lót--------tên không pác.., em đang cần gấp lắm...pác pro giúp giùm em với...thanh pác trước ha
=TRIM(LEFT(SUBSTITUTE($A$1," ",REPT(" ",255)),255))
=TRIM(RIGHT(SUBSTITUTE($A$1," ",REPT(" ",255)),255))
=SUBSTITUTE(SUBSTITUTE(A1,B1,""),D1,"")
Công thức lấy CHỮ LÓT không đúng đâu nha ---> Xem lạiGiả sử ô A1 chứa họ và tên
ô B1: Họ:
ô D1: TênMã:=TRIM(LEFT(SUBSTITUTE($A$1," ",REPT(" ",255)),255))
ô C1: LótMã:=TRIM(RIGHT(SUBSTITUTE($A$1," ",REPT(" ",255)),255))
Với mặc định chữ đầu tiên là họ; chữ cuối cùng là Tên; các chữ ở giữa là LótMã:=SUBSTITUTE(SUBSTITUTE(A1,B1,""),D1,"")
Không nên dùng SUBSTITUTE(). Sẽ có một vài trường hợp cho kết quả sai.Giả sử ô A1 chứa họ và tên
ô C1: Lót
Mã:=SUBSTITUTE(SUBSTITUTE(A1,B1,""),D1,"")
Sư phụ NDu và huuthang chỉ giáo các trường hợp ERROR được không. Mình có add vài ví dụ trong file rồi, thấy OK.Không nên dùng SUBSTITUTE(). Sẽ có một vài trường hợp cho kết quả sai.
Thiếu gì tên! Nguyễn Thành hà, Lý Băng Băng... chẳng hạnSư phụ NDu và huuthang chỉ giáo các trường hợp ERROR được không. Mình có add vài ví dụ trong file rồi, thấy OK.
OK, thanks Huuthang,hiểu rồi. Một số trường hợp bị lỗi do Lót trùng với Tên hoặc trùng với Họ.ví dụ: Trần Thị Vân Vân; Nguyễn Văn Nguyễn ...Không nên dùng SUBSTITUTE(). Sẽ có một vài trường hợp cho kết quả sai.
Nguyễn Văn Nguyễn thì có vấn đề gì đâu?OK, thanks Huuthang,hiểu rồi. Một số trường hợp bị lỗi do Lót trùng với Tên hoặc trùng với Họ.ví dụ: Trần Thị Vân Vân; Nguyễn Văn Nguyễn ...
Sư phụ NDu và huuthang chỉ giáo các trường hợp ERROR được không. Mình có add vài ví dụ trong file rồi, thấy OK.
Tôi thấy cách của bạn digita là đơn giản và dễ hiểu nhất. Tuy nhiên, có lẽ bạn hơi nhầm chút xíu. Ở công thức hàm LEFT, chữ số cuối (start num) là 1; Ở công thức hàm RIGHT không có -1 ở cuối bởi bản thân phần họ tách được ở hàm LEFT đã cộng ký tự trống rồi (Ý bạn là độ dài tổng cộng-độ dài họ-ký tự trống sau họ).Chào bạn
Thí dụ ở ô A1 bạn có tên Trần Văn Xoài.
Tách họ trong ô B1 thì dung =LEFT(A1,FIND(" ",A1)-1)
Phần tên còn lại ghi qua C1 bằng phương thức =RIGHT(A1,LEN(A1)-LEN(B1)-1)
Mến
A1: Trần Văn Xoài, B1: =LEFT(A1,FIND(" ",A1)-1) sẽ cho kết quả là "Trần", nếu không trừ 1 sẽ cho kết quả là "Trần ". công thức C1: =RIGHT(A1,LEN(A1)-LEN(B1)-1) sẽ cho kết quả là "Văn Xoài", nếu không có -1 sẽ cho kết quả là " Văn Xoài", vì LEN(B1) đã bỏ khoảng trắng. digita không nhầm đâu bạn ạ.Tôi thấy cách của bạn digita là đơn giản và dễ hiểu nhất. Tuy nhiên, có lẽ bạn hơi nhầm chút xíu. Ở công thức hàm LEFT, chữ số cuối (start num) là 1; Ở công thức hàm RIGHT không có -1 ở cuối bởi bản thân phần họ tách được ở hàm LEFT đã cộng ký tự trống rồi (Ý bạn là độ dài tổng cộng-độ dài họ-ký tự trống sau họ).
Nếu A1 chứa họ tên, xài công thức này thử xem:Làm thế nào để lấy được chữ lót hả bạn? (lấy chữ nằm giữa họ và tên)
Nguyễn Văn A --> Văn
Nguyễn Hoàng Thùy Linh --> Hoàng Thùy
=TRIM(MID(LEFT(TRIM(A1);LEN(TRIM(A1))-LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(A1);" ";REPT(" ";20));20))));FIND(" ";TRIM(A1))+1;100))
Nếu A4 là "Nguyen hoang kim thuy linh" thì kết quả là "hoang"?Ko được ban ơi
Ko được ban ơi![]()
Công thức đó còn dư 1 khoảng trắng.Mình muốn lấy Hoàng Kim Thùy
Đây rồi
=MID(TRIM(A1),FIND(" ",TRIM(A1)),FIND("-",SUBSTITUTE(TRIM(A1)," ","-",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-FIND(" ",TRIM(A1)))
Sao lại không được? Xem trong file nè.Ko được ban ơi
Ko được ban ơi![]()