Lấy một vài kí tự trong 1 xâu

Liên hệ QC

donghoangedu

Thành viên mới
Tham gia
2/9/07
Bài viết
29
Được thích
4
Giả sử Họ tên : Nguyễn Ngọc Thiên Nhi
ngày sịnh: 12/10/1985

Hãy làm dùm e để có kết quả là nntnhi_121085

Thank you very much
 

File đính kèm

donghoangedu đã viết:
Giả sử Họ tên : Nguyễn Ngọc Thiên Nhi
ngày sịnh: 12/10/1985

Hãy làm dùm e để có kết quả là nntnhi_121085

Thank you very much

Dùng VBA thì quá nhàm, lại không đúng chuyên mục.

Vì vậy mời các cao thủ công thức và name!

Thân!
 
Vụ này làm được... tuy nhiên với tên có dấu thì làm sao đây?
Ví dụ: Nguyễn Anh Tuấn thì cho ra natuan hay natuấn
Tôi làm cho bạn, vẫn giữ nguyên dấu tiếng việt nhé... Nếu muốn loại bỏ dấu thì bạn dùng Unikey loại bỏ dấu cho danh sách trước, sau đó sẽ dùng công thức trong file
------------------------------
Xem file, tôi dùng 2 cách: bằng công thức và bằng VBA, tùy bạn chọn!
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Bác Tuấn ơi cột ngày tháng trong file của bạn donghoangedu có lẫn cả text khi dùng text(.."ddmmyy") nó làm sao ý (dd/mm/yy) Bác xem lại xem.
 
donghoangedu đã viết:
Giả sử Họ tên : Nguyễn Ngọc Thiên Nhi
ngày sịnh: 12/10/1985

Hãy làm dùm e để có kết quả là nntnhi_121085

Thank you very much

Bước 1 : Lấy ký tự đầu tiên trong chuỗi
=LEFT(Sheet1!$B2,1)
Bước 2 : Lấy ký tự đầu tiên của từ thứ hai trong chuỗi
=IF(ISERROR(FIND(" ",Sheet1!$B2)),"",MID(Sheet1!$B2,FIND(" ",Sheet1!$B2)+1,1))
Bước 3 : Lấy ký tự đầu tiên của từ thứ ba trong chuỗi
=IF(ISERROR(FIND("-",P1?)),"",MID(P1?,FIND("-",P1?)+1,1))
Với P1?=SUBSTITUTE(Sheet1!$B2," ","-",2) : thay thế khoảng trắng thứ hai trong chuỗi bằng dấu -
Bước 4 : Lấy ký tự đầu tiên của từ thứ tư trong chuỗi
=IF(ISERROR(FIND("-",P2?)),"",MID(P2?,FIND("-",P2?)+1,1))
Với P2?=SUBSTITUTE(Sheet1!$B2," ","-",3) : thay thế khoảng trắng thứ ba trong chuỗi bằng dấu -
Bước 5 : Chuyển dạng ngày tháng sang dạng Text
=TEXT(Sheet1!$D2,"DDMMYYYY")
Bước 6 : Ghép các bước lại
 

File đính kèm

salam đã viết:
Bác Tuấn ơi cột ngày tháng trong file của bạn donghoangedu có lẫn cả text khi dùng text(.."ddmmyy") nó làm sao ý (dd/mm/yy) Bác xem lại xem.
Uh.. tôi quên để ý vụ này... nhưng kết quả vẫn đúng cơ mà... Hình như khi ta để tham số "ddmmyy" thì Excel nó đã cố gắng chuyển mấy thằng em "lạc đường" trở về với DATE rồi đấy! (Trên máy của Salam thì sao? Máy tôi vẫn đúng)
Giãi pháp để chắc chắn rằng cell luôn phải là DATE thì ta vẩn làm dc, nhưng mà... có lẽ nên để tác giã tự rút kinh nghiệm sẽ hay hơn...
------------------------------------
Uh... đúng rồi... Tôi vừa thử xong... Trên máy dc setting dd/mm/yy trong RLO thì sẽ cho kết quả đúng.. còn máy nào có setting mm/dd/yy thì khi mở file này sẽ thấy tùm lum...
Vậy tác giả nên chuyển ngày tháng năm ra đúng định dạng trước nhé! Đó là 1 vấn đề khác đã từng đề cập trên diển đàn!
ANH TUẤN
 
Lần chỉnh sửa cuối:
hoangdanh282vn đã viết:
Bước 1 : Lấy ký tự đầu tiên trong chuỗi
=LEFT(Sheet1!$B2,1)
Bước 2 : Lấy ký tự đầu tiên của từ thứ hai trong chuỗi
=IF(ISERROR(FIND(" ",Sheet1!$B2)),"",MID(Sheet1!$B2,FIND(" ",Sheet1!$B2)+1,1))
Bước 3 : Lấy ký tự đầu tiên của từ thứ ba trong chuỗi
=IF(ISERROR(FIND("-",P1?)),"",MID(P1?,FIND("-",P1?)+1,1))
Với P1?=SUBSTITUTE(Sheet1!$B2," ","-",2) : thay thế khoảng trắng thứ hai trong chuỗi bằng dấu -
Bước 4 : Lấy ký tự đầu tiên của từ thứ tư trong chuỗi
=IF(ISERROR(FIND("-",P2?)),"",MID(P2?,FIND("-",P2?)+1,1))
Với P2?=SUBSTITUTE(Sheet1!$B2," ","-",3) : thay thế khoảng trắng thứ ba trong chuỗi bằng dấu -
Bước 5 : Chuyển dạng ngày tháng sang dạng Text
=TEXT(Sheet1!$D2,"DDMMYYYY")
Bước 6 : Ghép các bước lại
Cách của bạn e rằng ko ổn... Lở tên người là: Công tằng tôn nữ tạ thị Tòn Ten thì bạn hơi bị mệt đấy... he... he... Còn với cách của tôi thì name đã dc chuẩn hóa trước nên việc thêm name rất dể dàng... Bạn xem lại nhé! Chưa tổng quát đâu!
ANH TUẤN
 
anhtuan1066 đã viết:
Cách của bạn e rằng ko ổn... Lở tên người là: Công tằng tôn nữ tạ thị Tòn Ten thì bạn hơi bị mệt đấy... he... he... Còn với cách của tôi thì name đã dc chuẩn hóa trước nên việc thêm name rất dể dàng... Bạn xem lại nhé! Chưa tổng quát đâu!
ANH TUẤN
Anhtuan nói đúng rồi, mình nghĩ là tên thường có từ 2 đến 5 từ thôi, nên làm công thức trên cho đơn giản, 1triệu người ko biết có mấy người có tên gồm 6 từ nữa, nếu muốn thêm vài từ trong tên từ thì ta thêm vài name trong công thức thôi, đơn giản mà, từ bước 2 đến bước bốn hoàn toàn giống nhau đấy thôi.

Bước 1 : Lấy ký tự đầu tiên trong chuỗi
=LEFT(Sheet1!$B2,1)
Bước 2 : Lấy ký tự đầu tiên của từ thứ hai trong chuỗi
=IF(ISERROR(FIND(" ",Sheet1!$B2)),"",MID(Sheet1!$B2,FIND(" ",Sheet1!$B2)+1,1))
Bước 3 : Lấy ký tự đầu tiên của từ thứ ba trong chuỗi
=IF(ISERROR(FIND("-",P1?)),"",MID(P1?,FIND("-",P1?)+1,1))
Với P1?=SUBSTITUTE(Sheet1!$B2," ","-",2) : thay thế khoảng trắng thứ hai trong chuỗi bằng dấu -
Bước 4 : Lấy ký tự đầu tiên của từ thứ tư trong chuỗi
=IF(ISERROR(FIND("-",P2?)),"",MID(P2?,FIND("-",P2?)+1,1))
Với P2?=SUBSTITUTE(Sheet1!$B2," ","-",3) : thay thế khoảng trắng thứ ba trong chuỗi bằng dấu -
Bước 5 : Lấy ký tự đầu tiên của từ thứ năm trong chuỗi
=IF(ISERROR(FIND("-",P3?)),"",MID(P3?,FIND("-",P3?)+1,1))
Với P3?=SUBSTITUTE(Sheet1!$B2," ","-",4) : thay thế khoảng trắng thứ tư trong chuỗi bằng dấu -

Bước 6 : Lấy ký tự đầu tiên của từ thứ sáu trong chuỗi
=IF(ISERROR(FIND("-",P4?)),"",MID(P4?,FIND("-",P4?)+1,1))
Với P4?=SUBSTITUTE(Sheet1!$B2," ","-",5) : thay thế khoảng trắng thứ năm trong chuỗi bằng dấu -

Bước 7 : Chuyển dạng ngày tháng sang dạng Text
=TEXT(Sheet1!$D2,"DDMMYYYY")
Bước 8 : Ghép các bước lại

Công thức này dùng cho tên có 7 từ nè, thế là được rồi.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom