=NOT(ISERROR(FIND(",",A2))

Where A2 is your name. False means there is no comma.

As for the surnames with l/case letters, that a bit more complex. You could do it with a formula, but I would do something in VBA like below. Assumes that your names are in col A and you want the results in col C.

```
Sub CheckLCase()
Dim cell As Range
Dim strSurname As String
Dim blnPassed As Boolean
For Each cell In Range([a2], [a65536].End(xlUp))
blnPassed = True 'Assuming we find no problems, name is okay
'Need to first get the surname
strSurname = Left(cell.Value, InStr(1, cell.Value, ",") - 1)
'I don't know the exact rules so it is hard to say what I am looking for. I will assume 'Mc' and 'Mac' are the only places this applies
'We are checking that the letter following 'Mac' or Mc' is upper case
If InStr(1, strSurname, "mc", vbTextCompare) Then
If StrComp(LCase(Mid(strSurname, 3, 1)), Mid(strSurname, 3, 1)) = 0 Then blnPassed = False
End If
If InStr(1, strSurname, "mac", vbTextCompare) Then
If StrComp(LCase(Mid(strSurname, 4, 1)), Mid(strSurname, 4, 1)) = 0 Then blnPassed = False
End If
If blnPassed = True Then
cell.Offset(0, 2).Value = True
Else
cell.Offset(0, 2).Value = False
End If
Next cell
End Sub
```