Tạo mã cho Học sinh (7 người xem)

Liên hệ QC

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

Lớp không ổn, mỗi năm lớp sẽ thay đổi nên từ khóa Lớp trong mã là lớp của nhiều năm trước không ý nghĩa gợi nhớ nhiều, chỉ cần Niên khóa-STT là đủ
Chỉ là tăng khả năng tìm kiếm thôi mà, không có không sao nhưng có thì càng tốt
 
mình nghĩ chưa đủ bạn ơi. Nếu tên dài hơn ba chữ thì sao bạn?
Của bạn đây
=IFERROR(IF(IFERROR(FIND(" ",B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1),0)=0,LOWER(A1&LEFT(B1,1)&MID(B1,(FIND(" ",B1)+1),1)&MID(B1,(FIND(" ",B1,(FIND(" ",B1)+1))+1),1)),LOWER(A1&LEFT(B1,1)&(MID(B1,(FIND(" ",B1))+1,1))&(MID(B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1,1))&(MID(B1,(FIND(" ",B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1))+1,1)))),"")
 
Bọn e là mầm nên bọn e k có niên khoá ak. Và mỗi năm học sinh bọn em lại tuyển mới thêm 3.4.5 tuổi năm nào cũng có thêm. Bg e cần bác nào chỉ giáo e công thức đổi cột B1= Nguyễn Thành An thành B1= nta.
Hoặc tên của bạn nào mà bốn chữ vẫn chỉ lấy đc chữ cái đầu thoii ạ
E cảm ơn cả nhà đã cho e ý kiến ah!
 
Cứ mấy bài Nối chuỗi là cứ nhớ đến hàm JoinText() hoặc JoinIf() của thầy @ndu96081631 (Theo link bài #5)
Cụ thể: A1= "A1"; B1= "Nguyễn Thành An"
Mã:
C1=A1&JoinText("",1,INDEX(LEFT(TRIM(MID(SUBSTITUTE(B1," ",REPT(" ",100)),(ROW($1:$10)-1)*100+1,100))),))
Enter fill xuống.
Thân.
Nếu excel có hỗ trợ Flash fill, thì dùng nó sẽ ngon hơn đấy bạn vì có pattern sẵn rồi!!
 
Chào các bác thông thái!
Em muốn nhờ các bác thông thái giúp e công thức tách tên lấy kí tự của họ tên đầy đủ của học sinh để làm mã HS
VD
- Lớp: A1

Họ và tên HS

Mã HS





A1

Nguyễn Thành An

a1nta

E muốn tạo mã HS như thế này áp dụng công thức nào các bác chỉ giáo giúp em với ạ










































[TD='top']
Lớp
[/TD]

Vì tương lai các cháu nhi đồng, chịu khó nhấp công thức dài một chút
Mã:
=A1&MID(TRIM(B1),1,1)&MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",1))+1,1)&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",2))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",3))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",4))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",5))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",6))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",7))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",8))+1,1),"")
 

File đính kèm

Dùng luôn cột Stt mà đánh mã có phải nhanh không? chẳng phải no cái chuyện chùng gì cả.
 
Vì tương lai các cháu nhi đồng, chịu khó nhấp công thức dài một chút
Mã:
=A1&MID(TRIM(B1),1,1)&MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",1))+1,1)&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",2))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",3))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",4))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",5))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",6))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",7))+1,1),"")&IFERROR(MID(TRIM(B1),FIND("#",SUBSTITUTE(TRIM(B1)," ","#",8))+1,1),"")

Đụng mấy bài xử lý chuỗi đúng là ngứa tay thật, mượn file bạn thêm code cho đủ bộ luôn.
PHP:
Function ghep(str As String)
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function
Công thức=A1&"-"&ghep(B1)
 
Đụng mấy bài xử lý chuỗi đúng là ngứa tay thật, mượn file bạn thêm code cho đủ bộ luôn.
PHP:
Function ghep(str As String)
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function
Công thức=A1&"-"&ghep(B1)
(Vì hàm dùng trên bảng tính) Buồn 'mắt' xin chỉnh lại tẹo... :):)

PHP:
Function ghep(ByVal str As String) As String
Static oReg As Object
If oReg Is Nothing Then Set oReg = CreateObject("vbscript.regexp")
With oReg
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function

--------
Sao giờ font chữ trong mấy thẻ code nhìn xấu thế, lại còn để chữ in nghiêng nữa chứ!
 
Đụng mấy bài xử lý chuỗi đúng là ngứa tay thật, mượn file bạn thêm code cho đủ bộ luôn.
PHP:
Function ghep(str As String)
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function
Công thức=A1&"-"&ghep(B1)
Cả 4 công thức đều còn thiếu hàm LOWER() bao ở ngoài, thì lúc đó kết quả mới đúng ý chủ thớt.
Nên tổng hợp cả 4 vào "nồi lẩu" kèm dưới đây, anh em "nhậu" chung buổi họp mặt.
Khà khà khà.
/-*+//-*+//-*+/
 

File đính kèm

Bọn e là mầm nên bọn e k có niên khoá ak. Và mỗi năm học sinh bọn em lại tuyển mới thêm 3.4.5 tuổi năm nào cũng có thêm. Bg e cần bác nào chỉ giáo e công thức đổi cột B1= Nguyễn Thành An thành B1= nta.
Hoặc tên của bạn nào mà bốn chữ vẫn chỉ lấy đc chữ cái đầu thoii ạ
E cảm ơn cả nhà đã cho e ý kiến ah!
Của bạn đây =IFERROR(IF(IFERROR(FIND(" ",B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1),0)=0,LOWER(LEFT(B1,1)&MID(B1,(FIND(" ",B1)+1),1)&MID(B1,(FIND(" ",B1,(FIND(" ",B1)+1))+1),1)),LOWER(LEFT(B1,1)&(MID(B1,(FIND(" ",B1))+1,1))&(MID(B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1,1))&(MID(B1,(FIND(" ",B1,(FIND(" ",B1,(FIND(" ",B1))+1))+1))+1,1)))),"")
 
Cả 4 công thức đều còn thiếu hàm LOWER() bao ở ngoài, thì lúc đó kết quả mới đúng ý chủ thớt.
Nên tổng hợp cả 4 vào "nồi lẩu" kèm dưới đây, anh em "nhậu" chung buổi họp mặt.
Khà khà khà.
/-*+//-*+//-*+/
Trong bốn anh em chỉ có mình là "nông dân" nhất, dùng cuốc, cuốc mấy chục nhát mới xong. Khà khà /-*+//-*+//-*+/
Chúc các bạn 1 tối vui
 
(Vì hàm dùng trên bảng tính) Buồn 'mắt' xin chỉnh lại tẹo... :):)

PHP:
Function ghep(ByVal str As String) As String
Static oReg As Object
If oReg Is Nothing Then Set oReg = CreateObject("vbscript.regexp")
With oReg
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function

--------
Sao giờ font chữ trong mấy thẻ code nhìn xấu thế, lại còn để chữ in nghiêng nữa chứ!
Cái này hay, dù biết reg nó dựng lại nhiều lần, nhưng không biết xử lý sao, cám ơn bạn.
Thử với Byref cũng được.
 
Lần chỉnh sửa cuối:
Nói chuyện mã mới nhớ đến chuyện fiếu đục lỗ trong thư viện của trường năm 68-70; Fiếu này dùng để quản lí hàng triệu quyển sách thư viện của nhà trường & các thư viện liên kết khác.
Trên các cạnh của fiếu người ta đục rất nhiều lỗ; Trong đó 1 cạch giành cho thủ thư & 3 cạnh còn lại dành cho người đọc
Muốn ngâm cứu sách về ngành nào ta chỉ việc xỏ que xuyên qua hộp (bảo quản fiếu) & nâng lên là ta được các fiếu mục tiêu ta cần.
& cái quan trọng là các fiếu đó không cần xếp theo trật tự nào cả
 
Với tên Đỗ Văn Ân, nếu tác giả muốn kết quả là DVA thì toàn bộ giải pháp công thức sẽ phá sản. Ngoài ra cái chuyện trùng tên tôi nhắc từ đầu cũng không thấy chủ topic phản hồi
Dạng yêu cầu này có nhiều rồi và giải quyết không khó. Vấn đề ở đây tôi nghĩ rằng chính tác giả cũng không lường hết những tình huống mà mình có thể gặp phải, cuối cùng là gây mất thời gian cho người trợ giúp
 
(Vì hàm dùng trên bảng tính) Buồn 'mắt' xin chỉnh lại tẹo... :):)

PHP:
Function ghep(ByVal str As String) As String
Static oReg As Object
If oReg Is Nothing Then Set oReg = CreateObject("vbscript.regexp")
With oReg
    .Global = True: .Pattern = "(\S)\S+\s"
    If .test(str & " ") Then ghep = .Replace(str & " ", "$1")
End With
End Function

--------
Sao giờ font chữ trong mấy thẻ code nhìn xấu thế, lại còn để chữ in nghiêng nữa chứ!
?
Pattern này sai. Nếu gặp tên "nguyen van a be" nó sẽ ra là "nva b", và nếu có dấu cách đầu câu, nó vẫn giữ dấu cách đó.

Thử pattern này: "\W*(\w)\w*\W*)
(không cần phải cộng " " vào cuối chuỗi)
 
?
Pattern này sai. Nếu gặp tên "nguyen van a be" nó sẽ ra là "nva b", và nếu có dấu cách đầu câu, nó vẫn giữ dấu cách đó.

Thử pattern này: "\W*(\w)\w*\W*)
(không cần phải cộng " " vào cuối chuỗi)
Không lường hết các trường hợp, nên viết pattern thiếu là chuyện bình thường, trong chuỗi là tiếng việt thì \w và \W không thể sử dụng được.
Sửa lại pattern cho các trường hợp này: "\s*(\S)\S*\s?" hoặc "(\S)\S*\s?" thêm hàm Trim
 
Web KT

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

Back
Top Bottom