应群里某位朋友之求,帮其找从湖南湘乡到湘潭的火车直达车次表。在百度百科上倒是很容易找到 湘乡火车站的内容,不过内容连在了一起,并没有分成多列:
车次 到点 开点 始发站 始发 终到站 终到
K9031 0:12 0:14 长沙 22:10 张家界 9:37
我一时手痒,写了一些公式,把它分解成了多个列,这样就做到了排列整齐,井井有条。处理过程如下:
假设上面那行文字是A2单元格,先把它前后的空格给去掉,放在B2单元格:=Trim(A2)
观察一下,有8列内容,中间有7个空格。那么就用J列(J2单元格)来存放第一个空格所在的位置吧:=FIND(" ",SUBSTITUTE(B2," ","@",2))。要明确的是,J列及其之后的各列均为辅助列,可以没有;如果一旦没有,公式将会更加难懂。
这时候J2单元格的值变成了6,表明第一个空格在字符串的第6位置处。那就再以C列(C2单元格)来存放分解后的第一列(即“车次”)列吧:=LEFT(B2,J2)。这时候C2单元的内容会变成“K9031”,表明分解成功。
以后的各列都做如此分解。请注意,不管是J以后的各列,还是C以后的各列,都会越来越复杂,呵呵在一篇文章中实在难以说清楚。还是看XLS文档吧。我已经上传到了各个分享的地方:比如百度文库里面的这里,还有新浪共享资料里面的这里。
第一行就这么搞定了,接下来是怎么把这些公式一直复制下去。这里又有一个技巧了:不能按照常规的,认为这些公式类似,就可以一把从C列到I列。不信的话,你把这些分解后的列都选择往下拖试试,保证看到的所有行内容都一样。同理,也不能把从J列到O列,即保存空格所在数字的列一起往下拖。
正确的做法是:先把C列拖下去,然后把J列拖下去;再回过头来,把D列拖下去,再到后面把K列拖下去......就这么交错的相互往下拖,才能看到你所希望的结果。
可能有同学会说,“把这些保存成CSV格式的文档,然后导入到Excel,然后用向导交互式地指出分隔符是空格之类,也是可以的”。这当然也是一种方法。但是如果行数有增加呢,或者行内的内容有变化呢,那就只有重新导入了。而用我的公式法,后面的分解列都会自动调整内容的。
呵呵,借鉴一下CAD中的常用词,看看公式最终出来的效果图吧::