cuonghb644
Thành viên mới

- Tham gia
- 19/2/08
- Bài viết
- 17
- Được thích
- 1
Nhờ các bạn giúp đỡ. VD: Nguyễn Thị Quỳnh Hoa thì trả về là NTQH. Số từ trong chuỗi trong khoảng >=3, <=10. Viết bằng hàm thôi nhé. Code tôi không biết gì cả. Cảm ơn.
Nhờ các bạn giúp đỡ. VD: Nguyễn Thị Quỳnh Hoa thì trả về là NTQH. Số từ trong chuỗi trong khoảng >=3, <=10. Viết bằng hàm thôi nhé. Code tôi không biết gì cả. Cảm ơn.
Function LocTu(strTu As String) As String
Dim n As Integer, m As Integer
Dim VT As String, Loc As String
strTu = Trim(strTu)
m = Len(strTu)
Loc = Left(strTu, 1)
For n = 2 To m
VT = Mid(strTu, n, 1)
If VT = " " Then Loc = Loc & Mid(strTu, n + 1, 1)
Next
LocTu = Loc
End Function
Option Explicit
Function FirstChar(Ch As String) As String
Dim tam
Dim i As Integer
tam = Split(Ch, " ")
For i = 0 To UBound(tam)
If Len(Trim(tam(i))) > 0 Then FirstChar = FirstChar & Left(Trim(tam(i)), 1)
Next
End Function
Option Explicit
Function fSTRING(StrC As String) As String
Dim VTr As Byte: Const KT As String = " "
StrC = KT & Trim(StrC)
Do
VTr = InStr(StrC, KT) + 1
If VTr < 2 Then Exit Do
fSTRING = fSTRING & Mid(StrC, VTr, 1)
StrC = Mid(StrC, VTr + 1)
Loop
End Function
Bài này dùng code sẽ nhanh gọn hơn. Tuy nhiên nếu bạn muốn công thức thì vẫn xong (hơi dài dòng)Nhờ các bạn giúp đỡ. VD: Nguyễn Thị Quỳnh Hoa thì trả về là NTQH. Số từ trong chuỗi trong khoảng >=3, <=10. Viết bằng hàm thôi nhé. Code tôi không biết gì cả. Cảm ơn.
DK =IF(MID(" "&TRIM($A1),ROW(INDIRECT("1:"&LEN(" "&TRIM($A1)))),1)=" ",ROW(INDIRECT("1:"&LEN(" "&TRIM($A1)))),"")
Kt01 =IF(COUNT(DK)>=1,MID(TRIM($A1),SMALL(DK,1),1),"")
Kt02 =IF(COUNT(DK)>=2,MID(TRIM($A1),SMALL(DK,2),1),"")
Kt09 =IF(COUNT(DK)>=9,MID(TRIM($A1),SMALL(DK,9),1),"")
Kt10 =IF(COUNT(DK)>=10,MID(TRIM($A1),SMALL(DK,10),1),"")
=Kt01&Kt02&Kt03&Kt04&Kt05&Kt06&Kt07&Kt08&Kt09&Kt10
Góp thêm 1 UDF gần giống với sư phụPHP:Option Explicit Function fSTRING(StrC As String) As String Dim VTr As Byte: Const KT As String = " " StrC = KT & Trim(StrC) Do VTr = InStr(StrC, KT) + 1 If VTr < 2 Then Exit Do fSTRING = fSTRING & Mid(StrC, VTr, 1) StrC = Mid(StrC, VTr + 1) Loop End Function
Function TenTat(Text As String) As String
Text = " " & WorksheetFunction.Trim(Text)
Do Until InStr(Text, " ") = 0
Text = Mid(Text, InStr(Text, " ") + 1, Len(Text))
TenTat = TenTat & Left(Text, 1)
Loop
End Function
Option Explicit
Function FindFirst(Text As String) As String
Const KT As String = " ": Dim VTr As Byte, jJ As Byte
Text = KT & Text
For jJ = 1 To 255
VTr = InStr(Text, KT): If VTr < 1 Then Exit For
FindFirst = FindFirst & Mid(Text, VTr + 1, 1)
Text = "GPE" & Mid(Text, VTr + 2)
Next jJ
End Function