Excel文本排行的问题
初始
手头有一批数据要处理,表头和内容不太匹配。
- 原始数据大概是这个样子
1 | 项目 | 价格 | 类别 | 描述 |
- 目标期望是这个样子
1 | 项目 | 价格 | 类别 | 描述 |
试错的过程
刚开始想到的是使用excel的排序进行处理
首先进行的是转置
然后对每个单元格按照表头关键字添加了数字,进行辅助排序
等进行排序的时候,发现只有前面几列数量排序了,而后面的完全没有动
针对排序不动的问题,试了半天,也没有试出个所以然来
数据量太大,排查起来也不太方便,到后面排查出问题所在也不知还要多长时间
这个方向上果断选择了放弃
#新的方法
其实之前使用过这个方法,但操作起来太繁琐,一般不太愿意尝试。
使用Excel排序的办法受阻后,第二天想到了这个办法
- 1.准备好源数据
1 | 项目 | 价格 | 类别 | 描述 |
- 2.去除内容,保留关键字
(目的是做位置映射)
使用替换(关键字*)或其他方法都可以
1 | 项目 | 价格 | 类别 | 描述 |
-
- 获得关键字的位置
新建个Sheet,将源数据的表头和第一列复制过来
在新Sheet中B2中填写下面的公式,随机填充所有格子:
=MATCH(B$1,'去除内容,保留关键字'!2:2,0)
上述公式得到的结果为数字:
1 | 项目 | 价格: | 类别: | 描述: |
-
- 将关键字的位置转化为Excel单元格的位置
同样新建个Sheet,将源数据的表头和第一列复制过来
同第3步一样,在新Sheet中按行填写如下公式:
=SUBSTITUTE(ADDRESS(1,获得关键字的位置!B2,4),"1","")&ROW()
上述公式得到的结果为字母列、数字行:
1 | 项目 | 价格: | 类别: | 描述: |
- 5.根据字母列、数字行重新取源文件的内容
公式如下:
=INDIRECT("源数据!"&转化为excel位置!B2)
最终输出结果:
1 | 项目 | 价格: | 类别: | 描述: |
#事后总结
新的办法有点复杂,最关键的是:
1.内容中带有关键字,没有的话就没有办法区分的
2.使用关键字作映射,这个可能理解起来有点麻烦
能使用Excel自带的排序是最好的
但是关于excel为什么不能正确排序
由于数据量大、单元格内容复杂等原因实在不好排查
现在是没有时间去弄清楚的,最重要的是可以解决问题。
新的办法是可以将3、4、5全部合并的
但合并后公式太长,阅读和理解起来都太复杂
个人也不是太喜欢
这种分步骤的办法还有另外一个好处是排错方便
某一步出错了,打开相应的Sheet作修改就好了
Git自动更新
1 | @Echo off |
爬了个虫
初始需求
第一次接触到需求是要用到大量的成语、能区分出多音字
-
自己首先想到的是GitHub,在GitHub上搜索了下,果然搜索到了好多成语的源
在其中找了一个词库比较大的,下载了下来
-
然后找了几个汉字转拼音的网页,其中大多数不支持多音字
-
将所有的成语粘贴、转换;然后在Excel中使用if判断下,完活!
需求变更
需求有了新的变更,要提供些成语的解释和故事
-
起初是想到百度文档上找
但在上面找了一些之后,发现都不太好,要么是词量少,要么是东拼西凑的。 -
然后想在专业网站上找找。最终确定了:http://www.gushi51.com
-
上面大概有4000个成语故事,怎么将这4000个给搞下成了一个大问题。
第一时间想到的是使用爬虫。
直接使用python,是不太可能的。
在几个爬虫软件中选择了八爪鱼,可视化操作,这点大大降低了门槛。 -
网页使用的是统一的模版,网址有规律
直接使用八爪鱼的批量生成。
开始自动流程。
新的问题
批量生成的网址大概2W+,实际可用的网址也就4000,在实际跑的过程有遇到了大量无效的网址。
-
刚开始的时候,是观察网址段,将任务分解。
实际操作的过程中,实在是太多的段了,手动去操作能累死。 -
这些网页有目录页,现在打算从这方面做文章
使用自动翻页,将所有的目录页,显示在同一个网页内。
使用Link Grabber,将所有符合的链接提取出来。 -
再将这个链接放进入八爪鱼中。
#现在问题算是基本完美的解决了!
#其他问题
- 八爪鱼免费版本地跑到800条数据时,效率明显下降。
- 在笔记本上850条时就会偶现卡死,不过等待一段时间后还能响应,接近900时卡死只能结束进程了
- 台式机上坚持到了920条出现假死,接近1000时等待后还可响应
