Possible? Yes, but not really easy - certainly not with a formula.
Here's your workbook back with an Excel module in containing the following code, which can be used as a worksheet function (and which snb will be along to rewrite in one line in just a minute
)
Function WordCount(ByVal sPhrase As String) As Long
Const sBREAKINGCHARS = "-!.,&+*()[]{}@#?;:'£$%_"""
Dim asWords() As String
Dim lTmpCount As Long
Dim lLoopVar As Long
Dim lWordLoop As Long
Dim lCharLoop As Long
Dim lThisChar As Long
Dim bIsWord As Boolean
For lLoopVar = 1 To Len(sBREAKINGCHARS)
sPhrase = Replace(sPhrase, Mid(sBREAKINGCHARS, lLoopVar, 1), " ")
Next lLoopVar
While InStr(sPhrase, " ") > 0
sPhrase = Replace(sPhrase, " ", " ")
Wend
asWords = Split(sPhrase, " ")
lTmpCount = 0
For lWordLoop = LBound(asWords) To UBound(asWords)
bIsWord = True
lCharLoop = 1
While lCharLoop <= Len(asWords(lWordLoop)) And bIsWord
lThisChar = Asc(Mid(asWords(lWordLoop), lCharLoop, 1))
If Not ((lThisChar >= Asc("A") And lThisChar <= Asc("Z")) Or (lThisChar >= Asc("a") And lThisChar <= Asc("z"))) Then
bIsWord = False
End If
lCharLoop = lCharLoop + 1
Wend
If bIsWord Then
lTmpCount = lTmpCount + 1
End If
Next lWordLoop
WordCount = lTmpCount
End Function
Bookmarks