我在 Mac 上使用 Office 2011。
我正在尝试编写一个公式来从单元格中的文本中删除小写字符(最好还有空格,但这并不重要)。目的是将姓名转换为首字母;因此“Jane”将变成“J”,“DeLacy”将变成“DL”,“Mary-Anne”将变成“MA”,“Anna Elise”将变成“AE”。
到目前为止,我有这个(假设名称在 B2 中),用于剥离小写字符:
=SUBSTITUTE(B2,CHAR(ROW(97:122)),"")
但是,这只会删除“a”(因此“Jane”变为“Jne”)。问题似乎是 CHAR 函数只返回第一个字符,而不是指定的范围:
=CHAR(ROW(97:122))
返回“a”。
也是
=CHAR(ROW(INDIRECT("97:122")))
我如何让它返回整个范围以便删除所有小写字符?
答案1
考虑使用小乌驅動德已定义F涂油礼(UDF):
Public Function LowerKiller(sIn As String) As String
Dim L As Long, LL As Long
Dim sCh As String, temp As String
For L = 1 To Len(sIn)
sCh = Mid(sIn, L, 1)
If sCh Like "[a-z]" Or sCh = " " Then
Else
temp = temp & sCh
End If
Next L
LowerKiller = temp
End Function