首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除所有文本和字符

删除所有文本和字符
EN

Stack Overflow用户
提问于 2017-01-18 18:46:41
回答 3查看 2.1K关注 0票数 0

我这里有一些文本字符串

"16cg-301 -request","16cg-3368 -用于审核“,"16cg-3684 -用于过程”

我想要做的是删除所有的文本和字符,除了数字和字母"cg“和-,这是在参考代码内。

EN

回答 3

Stack Overflow用户

发布于 2017-01-18 18:52:31

如果要提取的字符串始终位于完整字符串的第一个空格之前,则可以使用SEARCHLEFT来提取参考代码:

代码语言:javascript
复制
=LEFT(A1,SEARCH(" ",A1)-1)

此公式将从16cg-3368 - for review中提取16cg-3368

票数 1
EN

Stack Overflow用户

发布于 2017-01-18 19:00:06

我建议使用类似suggested here的How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

使用如下所示的替换正则表达式

代码语言:javascript
复制
[^\dcg]*

或者像这样的匹配正则表达式

代码语言:javascript
复制
^([0-9cg- ]+).*

否则,您也可以使用类似于下面的奇怪公式

代码语言:javascript
复制
=CONCATENATE(IF(NOT(ISERROR(SEARCH(MID(A2;1;1);"01234567890cg-")>0));MID(A2;1;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;2;1);"01234567890cg-")>0));MID(A2;2;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;3;1);"01234567890cg-")>0));MID(A2;3;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;4;1);"01234567890cg-")>0));MID(A2;4;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;5;1);"01234567890cg-")>0));MID(A2;5;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;6;1);"01234567890cg-")>0));MID(A2;6;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;7;1);"01234567890cg-")>0));MID(A2;7;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;8;1);"01234567890cg-")>0));MID(A2;8;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;9;1);"01234567890cg-")>0));MID(A2;9;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;10;1);"01234567890cg-")>0));MID(A2;10;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;11;1);"01234567890cg-")>0));MID(A2;11;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;12;1);"01234567890cg-")>0));MID(A2;12;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;13;1);"01234567890cg-")>0));MID(A2;13;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;14;1);"01234567890cg-")>0));MID(A2;14;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;15;1);"01234567890cg-")>0));MID(A2;15;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;16;1);"01234567890cg-")>0));MID(A2;16;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;17;1);"01234567890cg-")>0));MID(A2;17;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;18;1);"01234567890cg-")>0));MID(A2;18;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;19;1);"01234567890cg-")>0));MID(A2;19;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;20;1);"01234567890cg-")>0));MID(A2;20;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;21;1);"01234567890cg-")>0));MID(A2;21;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;22;1);"01234567890cg-")>0));MID(A2;22;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;23;1);"01234567890cg-")>0));MID(A2;23;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;24;1);"01234567890cg-")>0));MID(A2;24;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;25;1);"01234567890cg-")>0));MID(A2;25;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;26;1);"01234567890cg-")>0));MID(A2;26;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;27;1);"01234567890cg-")>0));MID(A2;27;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;28;1);"01234567890cg-")>0));MID(A2;28;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;29;1);"01234567890cg-")>0));MID(A2;29;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;30;1);"01234567890cg-")>0));MID(A2;30;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;31;1);"01234567890cg-")>0));MID(A2;31;1);"");IF(NOT(ISERROR(SEARCH(MID(A2;32;1);"01234567890cg-")>0));MID(A2;32;1);""))

到目前为止只适用于不到33个标志。这里的问题是你会得到意想不到的行为,就像这样:

代码语言:javascript
复制
123cg-123 - Process => 123cg-123-c

重读后,我认为你应该尝试另一种方法,而不是问题中描述的;-)

票数 0
EN

Stack Overflow用户

发布于 2017-01-19 09:44:15

如果您想返回最后一个数字之前的所有内容,请尝试:

代码语言:javascript
复制
=LEFT(A1,LOOKUP(2,1/ISNUMBER(-MID(A1,seq,1)),seq))

seq是一个命名公式: Formula►Define Name

代码语言:javascript
复制
Name:  seq
Refers to:  =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))

seq返回一个从1到255的序列号数组。

代码语言:javascript
复制
mid(a1,seq,1)

返回由A1中的字符串中的各个字符组成的数组。前导减号将数字从字符串转换为数字。

然后,查找函数将返回最后一个数字的位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41717320

复制
相关文章

相似问题

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