Để làm việc này bạn cần dùng công thức mảng như sau
=MIN(IF(ISERROR(FIND(CHAR(ROW(INDIRECT(\"65:90\"))),A1)),\"\",FIND(CHAR(ROW(INDIRECT(\"65:90\"))),A1)))
Rồi bấm tổ hợp phím Shift + Ctrl + Enter để tạo thành công thức mảng , như hình dưới ,để cho kết quả đúng
Hoặc bạn có thể định nghĩa theo hàm , cách làm như sau . Trong Excel bấm tổ hợp phím Alt_F11 để mở cửa sổ Microsoft Visual Basic .
Bấm chuột phải vào VBAProject > Insert > Mudule
Rồi bạn copy nội dung bên dưới vào cửa sổ bên phải
Function GetFirstUpper(Rg As Range) As Integer
Dim xStr As String
Dim I As Integer
Application.Volatile
GetFirstUpper = -1
On Error Resume Next
xStr = Trim(Rg.Value)
For I = 1 To Len(xStr)
If (Asc(Mid(xStr, I, 1)) < 91) And (Asc(Mid(xStr, I, 1)) > 64) Then
GetFirstUpper = I
Exit Function
End If
Next
End Function
Quay trở lại Excel và gõ công thức
=GetFirstUpper(A1)
Nếu không có kí tự chữ hoa nào nó sẽ cho kết quả bằng -1