表格(逗号分隔值文件)
a1 家庭食养宝典——女性篇;刊号;9787513214278
a2 9787811362169
a3 极地精灵,26.00元,无,极地精灵,大连出版社,9787550505582,2013年9月
a4 豪尔绍尼评传(理性的沉思)/诺贝尔经济学奖获奖者评传丛书,黄涛著,11.80元,豪尔绍尼评传(理性的沉思)/诺贝尔经济学奖获奖者评传丛书,山西经济,7806361421,1999年10月
想要的结果是(就是把书号提取出来放在一列里)
b1 9787513214278
b2 9787811362169
b3 9787550505582
b4 7806361421
每个单元的长度不一样,逗号(分号)个数也不一样,尝试过用分列,但是分列之后要的答案不在一列里,没发统计。
盼解答给个方案和怎么做,谢谢
分2步完成可以吗?
在B1输入公式:
=MID(A1,MAX(IF(((CODE(MID(A1&"12345",ROW(INDIRECT("1:"&LEN(A1))),1))=59)+(CODE(MID(A1&"12345",ROW(INDIRECT("1:"&LEN(A1))),1))=44))*(CODE(MID(A1&"12345",ROW(INDIRECT("6:"&LEN(A1)+5)),1))<58),ROW(INDIRECT("1:"&LEN(A1)))))+1,200)
摁SHIFT+CTLRL+回车结束公式的输入,将公式向下拉填充;
在C1输入公式:
=IF(ISNUMBER(FIND(",",$A1)),LEFT(B1,FIND(",",B1)-1),B1)
直接回车后将公式向下拉填充就可以了得到结果。
公式好复杂看不懂,没看懂含义,不过非常接近想要的答案了,可能但是的数据样本不够全面,就是在书号后面有2个3个逗号的情况这个公式就不适用了。
例:a5 重庆市地图册,12.00元,成都地图出版社,重庆市地图册,成都地图出版社,7805449279,2006年01月,32
这个要怎么解决呢?
B1改为:
=MID(A1,MAX(IF(((CODE(MID(IF(ISNUMBER(FIND("年",A1)),LEFT(A1,FIND("年",A1)),A1)&1/3,ROW(INDIRECT("1:"&LEN(A1))),1))=59)+(CODE(MID(IF(ISNUMBER(FIND("年",A1)),LEFT(A1,FIND("年",A1)),A1)&1/3,ROW(INDIRECT("1:"&LEN(A1))),1))=44))*(CODE(MID(IF(ISNUMBER(FIND("年",A1)),LEFT(A1,FIND("年",A1)),A1)&1/3,ROW(INDIRECT("6:"&LEN(A1)+5)),1))<58),ROW(INDIRECT("1:"&LEN(A1)))))+1,200)
C1公式不变。
当开本在年号前面公式又不适用了,或者年号的书写形式改变
例如:重庆市地图册,12.00元,成都地图出版社,重庆市地图册,成都地图出版社,7805449279,32,2006年01月
极地精灵,26.00元,无,极地精灵,大连出版社,9787550505582,32开,2013-9-1
又改下吧。
在B1输入公式:
=MID(A1,MATCH(1,((CODE(MID(A1&1/3,ROW(INDIRECT("1:"&LEN(A1))),1))=59)+(CODE(MID(A1&1/3,ROW(INDIRECT("1:"&LEN(A1))),1))=44))*ISNUMBER(--MID(A1&1/3,ROW(INDIRECT("2:"&LEN(A1)+1)),8)),)+1,200)
在C1输入公式:
=IF(ISNA(B1),A1,IF(ISNUMBER(FIND(",",$B1)),LEFT(B1,FIND(",",B1)-1),B1))