现在的位置: 首页 > office > 正文
EXCEL2007-“分列”的局限和“筛选”的问题
2012年03月10日 office ⁄ 共 1602字 EXCEL2007-“分列”的局限和“筛选”的问题已关闭评论 ⁄ 被围观 4,205 views+

亲,你可曾遇到这种情况:突然有人莫名其妙甩给你一个几千行的excel数据表,每行有七八列,而你的职责只是从其中一列填写乱七八糟的单元格中提取电话/地址这样的信息?OMG,我就遇到了,遇到这种事本来不可怕,只要能给你数据的来源(多半是某个网页),你就可以甩开EXCEL表格直接去找原数据,但当你面对的只有这样一份EXCEL表格时,杯具就发生了……

一个一个手工去扫描?傻子都不会去做,方法当然是细分数据啦!从看似没有规律的数据中寻找最相似的数据,然后设法处理,就这么一类一类的处理,事情还没做完,不过我想我发现了EXCEL2007中分列功能的一些局限:

首批筛选了323行数据(含第一行标题),当我简单替换整理后,动用了强大的分列功能,至少只需要整理分列后的结构化数据了;但是当交差时突然发现,单元格中有的数据明明还在,分列后却消失了。起初以为EXCEL2007对单元格的字数有限制,后来才发现是因为数据中包含了不可见的一些特殊字符。不信,你试试将下面的文字放到一个单元格里,再做分列:

"电话:出境 国内 咨询:0571-88382288 88397188 传真:0571-88383830 投诉电话:88383826 网络推广员电话: 0571-88397193 地址:杭州市湖墅南路103号百大花园C区7-9楼"

经人指点,将这些文字粘贴到utral editor中,去除特殊字符后再分列,我没分成。最后采取了如下策略:

  • 1.将每个单元格的文字首尾都用两种特殊字符(原文中不存在的)包裹成“结构化数据”,然后保存为CSV文件。
  • 2.到utral editor中打开CSV文件,将不可见的字符(包括回车换行制表符等)通过粘贴到记事本里找到,然后在utral editor中全部替换,反复对比替换,直到原文中只有原有的可见数据和作为结构化识别标志的两种特殊字符。
  • 3.将处理后的全文贴回记事本并保存。
  • 4.新建EXCEL文件,导入保存的记事本数据,导入时分列的标记即为之前添加的两种特殊字符的一种。
  • 5.将分列后的数据复制,选择性粘贴为“转置”。

原则上,做到这一步就会基本滤除不可见的那些特殊字符,从搜索没有用过分列标识符的那个特殊字符的数量来看,原数据和现在处理所得的数据都一样,都是646个(utral editor中实际都算成了645个,我一步一步查询后发现原文中第103行中的“小佘”这个词导致了计算少1,很奇怪吧~)。

好了,由于在utral editor中反复替换会产生大量的逗号,所以按照特殊标识符分列后的数据中存在单纯的逗号,我开始做去除纯逗号单元格的筛选,但是当我选择粘贴后惊讶的发现,原来的323行变成了270多行;一行行对比后决定按照我添加的特殊符号是否被包含做自定义的筛选,结果比刚才的常规筛选好,但是也只有300行,我又继续对比,才发现有的行没有被分开,虽然没有找到更好的筛选方法,但可以确定的是数据没有丢失(646个符号还是646个)。所以,我总结如下:

  • 1.EXCEL2007的筛选功能中,逻辑上认为常规筛选和自定义筛选结果一致的想法不一定正确,这不,一次筛选完是270多行,一次又是300行,但是自定义好像要比常规筛选更准确。
  • 2.造成上述情况的根子还是在分列上,按照符号分割分列的时候,还是有可能造成有的列没有分出来,或者说紧跟在前一列的尾巴上去了。
  • 3.欣慰的是,如此一番折腾终于去掉了那些讨厌的不可见字符,而且数据没有丢失,排列的次序也没有变化,只需要人工再去对照原数据,将没有分列出来的再手工分出来。目前的300行相比原有的323行,我只需要把23行没分出来的数据再手工分出来就好了。

当完成这些,就可以开始进一步的数据分列,提取需要的内容而不必担心数据丢失截断了。

方法是笨了点,如果有朋友还有更好的方法,欢迎赐教啊!

抱歉!评论已关闭.

×