首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串编辑:删除每个单元格中不同数据的文本和特殊字符

字符串编辑:删除每个单元格中不同数据的文本和特殊字符
EN

Stack Overflow用户
提问于 2015-04-02 02:57:19
回答 2查看 39关注 0票数 0

数据示例: FMNLA处理时间为10月14日29日55021549616216*2934

这是合同编码,每个合同都是不同的。我需要删除文本,如果有的话,包括日期。此信息总是在开头,如果它是编码的。我还需要删除*并在每两个数字后插入一个逗号,但我应该能够做到这一点。基本上,应该删除空格之前的任何文本,但它必须多次运行才能删除日期文本的每个部分。

此数据是从Excel导入的。我无法在那里使用Excel公式。如果我使用Ctrl H来查找*,则查找文本将转到没有*的单元格。我试图将格式从常规更改为文本,但它不起作用。而且,我不知道有什么方法可以去掉变量文本/日期信息,因为它还包含数字,所以我决定看看在Access中可以做些什么。我在Access中做了很多基本的事情,但没有代码。大约有400份合同,所以编辑太耗时了。

我期望样本的结果是: 55,02,15,49,61,62,16,29,34

我希望我有足够的背景来帮助你!

EN

回答 2

Stack Overflow用户

发布于 2015-04-02 03:11:15

请尝试(在Excel中)查找内容:* (星号空格),全部替换,然后:

代码语言:javascript
运行
复制
=SUBSTITUTE(A1,"*****",",") 
票数 0
EN

Stack Overflow用户

发布于 2015-04-02 04:24:36

这将使您获得最后的“块”数据:

代码语言:javascript
运行
复制
=SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",255)),255)),"*","")

要每隔一个字符插入一个逗号,就需要一个UDF,如下所示:

代码语言:javascript
运行
复制
Function AddCommas(MyText As String) As String
Dim X As Long, TempText As String
If Len(MyText) < 3 Then
    InsertComma = MyText
Else
    TempText = Left(MyText, 2)
    For X = 3 To Len(MyText) Step 2
        TempText = TempText & "," & Mid(MyText, X, 2)
    Next X
    AddCommas = TempText
End If
End Function

然后,您可以像这样包装原始公式:

代码语言:javascript
运行
复制
=AddCommas(SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",255)),255)),"*",""))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29398647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档