我有一列想要清理的研究数据。
由于用户没有遵循说明,句子中出现了不必要的句号。我需要删除空格和小写字母之前的所有句号。例如:
This will help. to do that task. I'm sure. to complete it.
我想删除“to”前面的所有“。”。我需要对其他具有不同内容的句子执行此操作。
如何用公式来实现?任何帮助都非常感谢。
答案1
以下是使用 VBA 的方法:
- Alt使用+打开 Visual Basic IDEF11
- Alt使用+插入新的公共模块I,M
将以下代码粘贴到模块中:
Function StripPeriods(strArg As String) As String Dim intPos As Integer Dim intCha As Integer intPos = InStr(1, strArg, ". ") If intPos > 0 And intPos + 2 < Len(strArg) Then intCha = Asc(Mid(strArg, intPos + 2, 1)) If intCha > 96 And intCha < 123 Then StripPeriods = Left(strArg, intPos - 1) & StripPeriods(Mid(strArg, intPos + 1)) Else StripPeriods = Left(strArg, intPos) & StripPeriods(Mid(strArg, intPos + 1)) End If Else StripPeriods = strArg End If End Function
在新列或工作表中,在引用目标单元格的公式中调用上述函数,例如:
=StripPeriods(A1)
选择并复制公式的结果 ( Ctrl+ C)
- 将结果作为值选择性粘贴到原始单元格上(Ctrl++ Alt)V
答案2
您可以进行简单的查找和替换,查找“ 。” 即两边各有一个空格的句号,然后将其替换为一个空格。您可能会发现,首先应该查找并替换所有双空格...
编辑:在评论中的信息后添加:然后您可以搜索“。t”并替换为“t”,这样应该可以捕获其中的大部分内容......