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。
我遇到了自动导出 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。