从excel单元格中选择特定字符后的特定数字计数

从excel单元格中选择特定字符后的特定数字计数,excel,excel-2010,Excel,Excel 2010,我遇到了自动导出excel文件的情况。在其中一个单元格中,有一个客户端ID,它位于许多其他字符(也包括数字)之间。ID在短语“Client_ID=”之后或短语“Telesales=”之后。短语前后还有其他字符。这两个短语也可能出现在单元格中。以下是单元格内容的示例: sys|u CHSID=1487626 | sys|u StatConversationID=1000012424765 | sys|u ANI=00889620663 | sys|u DNIS=9800 | sys|u REDIR

我遇到了自动导出excel文件的情况。在其中一个单元格中,有一个客户端ID,它位于许多其他字符(也包括数字)之间。ID在短语“Client_ID=”之后或短语“Telesales=”之后。短语前后还有其他字符。这两个短语也可能出现在单元格中。以下是单元格内容的示例:

sys|u CHSID=1487626 | sys|u StatConversationID=1000012424765 | sys|u ANI=00889620663 | sys|u DNIS=9800 | sys|u REDIR=600 | sys|u Entrytime=15687291995 | sys|u ConversationID=191000930271 | sys|u CaseID=Customer 服务|客户| ID=8813262350 |菜单=1.1-剩余 分期付款|主题=客户 服务|系统优先=10 |系统技能=服务|系统ACW=3 |系统路由起始时间=156872038 |系统CS |标记=VQ |等待|操作员|等待=0 秒数|代理=b041 |名字=Antoa |姓氏=Ilie |录音| 1=612 | 1 | 20190917150721 | 140 |电话销售=测试 10 000凖凖凖凖凖凖凖凖凖凖凖凖凖凖ССС凖ССССС凖С15С

到目前为止,我一直在尝试:

=IF(计数(FIND({0,1,2,3,4,5,6,7,8,9});(MID(A1)(FIND(“CLIENT_ID=”;A1;1)>0);10)))>5;MID(A1;(FIND(“CLIENT_ID=”;A1;1)+4);10);MID(A1;(FIND(“Telesales=”;A1;1)+10))

但由于在“Telesales=”之后存在非客户ID的号码,因此不起作用

试试这个:

=IFERROR(MID(A1,FIND(“Client_ID=”,A1,1)+10,10),MID(A1,FIND(“Telesales=”,A1,1)+10,10))

如果您需要检查ID:

=IF(ISNUMBER(MID(A1,FIND(“Client_ID=”,A1,1)+10,10))=FALSE,IFERROR(MID(A1,FIND(“Client_ID=”,A1,1)+10,10),MID(A1,FIND(“Telesales=,A1,1)+10,10))

希望对你有帮助,也许是这样

=IF(AND(ISNUMBER(FIND("Client_ID=",A1)),ISNUMBER(VALUE(MID(A1,FIND("Client_ID=",A1)+10,10)))),MID(A1,FIND("Client_ID=",A1)+10,10),MID(A1,FIND("Telesales=",A1)+10,10))

假设ID号始终由“|”分隔,如上图所示,此公式应适用:

编辑:似乎已经有答案了,但这一条适用于任何长度的ID

IF(ISNUMBER(VALUE(MID(A1;FIND("Client_ID";A1)+10;1)));MID(A1;FIND("Client_ID";A1)+10;FIND("|";A1;FIND("Client_ID";A1))-(FIND("Client_ID";A1)+10));MID(A1;FIND("Telesales";A1)+10;FIND("|";A1;FIND("Telesales";A1))-(FIND("Telesales";A1)+10)))
这将有助于:

=MAX(IFERROR(MID(A1,SEARCH("Client_ID=",A1)+10,10)*1,0),IFERROR(MID(A1,SEARCH("Telesales=",A1)+10,10)*1,0))

如果找不到有效的ID(10个数字),它将返回0。

您试图提取什么?在“Client_ID=”(本例中为8813262350)之后的10位数字,并且您正在寻找公式而不是VBA解决方案?如果两个文本位都出现了怎么办?只有一个后面有数字吗?没有必要。在“Client_ID=”之后,如果存在,或者在它之后有任何东西-它将是我正在寻找的。在第二个短语之后,它可以是任何东西。是的,我更喜欢excel公式。
Client\u ID
Telesales=
是否总是在字符串中,其中只有一个实际包含有效的10位ID?我知道您首先要查找
Client\u ID
,如果失败,则查找
Telesales
是的。但是在“Client_ID=”之后可以是空的,也可以是其他字符。我想以某种方式验证“MID(A1,FIND(“Client_ID=”,A1,1)+10,10”只选择了10位数字。您是否总是有10位数字(如果有数字)?如果它是有效的ID,它总是10位数字。有时,就像在示例中一样,它可能是文本和一些数字(Telesales=Test10000)