我遇到了自动导出的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 服务| Client_ID = 8813262350 |菜单= 1.1-剩余 分期付款|主题=客户 服务| sys_Prio = 10 | sys_Skill =服务| 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 10000лвпРsтърсетегРsутреслед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的数字而无法使用。
答案 0 :(得分:1)
假定ID号始终以“ |”分隔像上面的情况一样,此公式应该起作用:
编辑:似乎已经被回答了,但是该版本适用于任何长度的ID。
function GetBodyMail(){
var thread = GmailApp.getThreadById("thread-id");
var mgs = thread.getMessages();
var mgsBody = mgs[0].getBody();
var attachments = mgs[0].getAttachments();
mgsBody = mgsBody + "<br> <img src='data:" + attachments[0].getContentType() + ";base64," + Utilities.base64Encode(attachments[0].getBytes() + "'>");
return mgsBody;
}
答案 1 :(得分:0)
尝试这个:
=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)))
希望有帮助
答案 2 :(得分:0)
也许是这样吗?
=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))
答案 3 :(得分:0)
这可以做到:
=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。