Select excel 单元格中特定字符后的特定数字计数

Select specific count of numbers after a specific character from excel cell

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

sys_CHSID=1487626|sys_StatConversationID=100001624765|sys_ANI=00889620663|sys_DNIS=9800|sys_REDIR=600|sys_Entrytime=1568721995|sys_ConversationID=191000930271|sys_CaseID=Customer Service|Client_ID=8813262350|Menu=1.1 - Remaining installments|Topic=Customer Service|sys_Prio=10|sys_Skill=Service|sys_ACW=3|sys_RouteStartTime=1568722038|sys_CS_Marker=VQ_Waiting_for_Operator_CS|Waited=0 seconds|Agent=b041|Firstname=Antoa|Lastname=Ilie|Recording_1=612_1_20190917150721_140|Telesales=test 10 000лв потърсете го утре след 15ч

到目前为止我已经尝试过:

=IF(COUNT(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);10))

但由于在 "Telesales=" 之后有些数字不是 Client_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。

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 个数字),它将 return0。