You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Excel中实现句号后首字母大写的可用公式

解决Excel中句号分隔句子的首字母大写问题

嘿,这个需求我之前也帮人处理过——PROPER会把所有单词首字母都大写,UPPER直接全转成大写,确实都不是你想要的效果。下面给你两种实用方案,按需选就行:

方案1:纯Excel公式(适配所有Excel版本)

假设你的目标文本在单元格A1,可以用这个数组公式(新版Excel直接回车确认,旧版需要按Ctrl+Shift+Enter触发数组计算):

=TEXTJOIN(". ", TRUE, UPPER(MID(TRIM(MID(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,".",""))+1))-1)*LEN(A1)+1, LEN(A1))),1,1)&RIGHT(TRIM(MID(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,".",""))+1))-1)*LEN(A1)+1, LEN(A1))), LEN(TRIM(MID(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,".",""))+1))-1)*LEN(A1)+1, LEN(A1))))-1))

公式逻辑拆解:

  1. 先用SUBSTITUTE把每个句号替换成和原文本长度相同的空格,方便后续拆分句子
  2. 通过MID提取每个被空格分隔的句子片段,TRIM自动去掉片段前后的多余空格
  3. 对每个片段的首字母用UPPER转大写,再拼接片段的剩余部分
  4. 最后用TEXTJOIN把处理好的句子用. 拼接回完整文本

方案2:VBA自定义函数(更简洁易维护)

如果经常需要做这个操作,自定义函数会省心很多:

  1. 按Alt+F11打开VBA编辑器
  2. 右键点击左侧的工作簿名称,选择「插入」→「模块」
  3. 粘贴以下代码:
Function SentenceCase(ByVal strText As String) As String
    Dim arrSentences() As String
    Dim i As Integer
    arrSentences = Split(strText, ".")
    For i = LBound(arrSentences) To UBound(arrSentences)
        arrSentences(i) = Trim(arrSentences(i))
        If Len(arrSentences(i)) > 0 Then
            arrSentences(i) = UCase(Left(arrSentences(i), 1)) & Mid(arrSentences(i), 2)
        End If
    Next i
    SentenceCase = Join(arrSentences, ". ")
End Function
  1. 回到Excel,在单元格输入=SentenceCase(A1)就能直接得到处理后的文本

额外提示:

  • 两种方案都会自动处理句号后的多余空格,比如"hello. world"会变成"Hello. World"
  • 如果需要扩展处理感叹号、问号等其他标点,只要修改公式或VBA里的分隔符就行

内容的提问来源于stack exchange,提问作者Petros_Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:32:53