上岸的鱼

心中有光,便可使整个世界升起太阳

初始

手头有一批数据要处理,表头和内容不太匹配。

  • 原始数据大概是这个样子
1
2
3
4
项目 | 价格 | 类别 | 描述
尺子 | 描述:量东西用的 | 价格:¥2 | 类别:学习
本子 | 描述:写作业用 | 价格:¥8
Tip | 价格:¥18 | 描述:hello world | 类别:娱乐
  • 目标期望是这个样子
1
2
3
4
项目 | 价格 | 类别 | 描述
尺子 | 价格:¥2 |类别:学习 | 描述:量东西用的
本子 | 价格:¥8 | | 描述:写作业用
Tip | 价格:¥18 | 类别:娱乐 | 描述:hello world

试错的过程

刚开始想到的是使用excel的排序进行处理
首先进行的是转置
然后对每个单元格按照表头关键字添加了数字,进行辅助排序
等进行排序的时候,发现只有前面几列数量排序了,而后面的完全没有动

针对排序不动的问题,试了半天,也没有试出个所以然来
数据量太大,排查起来也不太方便,到后面排查出问题所在也不知还要多长时间
这个方向上果断选择了放弃

#新的方法
其实之前使用过这个方法,但操作起来太繁琐,一般不太愿意尝试。
使用Excel排序的办法受阻后,第二天想到了这个办法

  • 1.准备好源数据
1
2
3
4
项目 | 价格 | 类别 | 描述
尺子 | 描述:量东西用的 | 价格:¥2 | 类别:学习
本子 | 描述:写作业用 | 价格:¥8
Tip | 价格:¥18 | 描述:hello world | 类别:娱乐
  • 2.去除内容,保留关键字
    (目的是做位置映射)

使用替换(关键字*)或其他方法都可以

1
2
3
4
项目 | 价格 | 类别 | 描述
尺子 | 描述: | 价格: | 类别:
本子 | 描述: | 价格:
Tip | 价格: | 描述: | 类别:
    1. 获得关键字的位置

新建个Sheet,将源数据的表头和第一列复制过来

在新Sheet中B2中填写下面的公式,随机填充所有格子:
=MATCH(B$1,'去除内容,保留关键字'!2:2,0)
上述公式得到的结果为数字:

1
2
3
4
项目 | 价格: | 类别: | 描述:
尺子 | 3 | 4 | 2
本子 | 3 | #N/A | 2
Tip | 2 | 4 | 3
    1. 将关键字的位置转化为Excel单元格的位置

同样新建个Sheet,将源数据的表头和第一列复制过来

同第3步一样,在新Sheet中按行填写如下公式:
=SUBSTITUTE(ADDRESS(1,获得关键字的位置!B2,4),"1","")&ROW()
上述公式得到的结果为字母列、数字行:

1
2
3
4
项目 | 价格: | 类别: | 描述:
尺子 | C2 | D2 | B2
本子 | C3 | #N/A | B3
Tip | B4 | D4 | C4
  • 5.根据字母列、数字行重新取源文件的内容

公式如下:
=INDIRECT("源数据!"&转化为excel位置!B2)

最终输出结果:

1
2
3
4
项目 | 价格: | 类别: | 描述:
尺子 | 价格:¥2 | 类别:学习 | 描述:量东西用的
本子 | 价格:¥8 | #N/A | 描述:写作业用
Tip | 价格:¥18 | 类别:娱乐 | 描述:hello world

#事后总结

新的办法有点复杂,最关键的是:
1.内容中带有关键字,没有的话就没有办法区分的
2.使用关键字作映射,这个可能理解起来有点麻烦

能使用Excel自带的排序是最好的
但是关于excel为什么不能正确排序
由于数据量大、单元格内容复杂等原因实在不好排查
现在是没有时间去弄清楚的,最重要的是可以解决问题。

新的办法是可以将3、4、5全部合并的
但合并后公式太长,阅读和理解起来都太复杂
个人也不是太喜欢
这种分步骤的办法还有另外一个好处是排错方便
某一步出错了,打开相应的Sheet作修改就好了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
@Echo off
color 0e
Title Git 更新
:begin
d:
cd D:\1\2
cls
Echo.请选择需要的操作
Echo 1 更新主分支
Echo 2 更新2
Echo.
Echo 3 切换到主分支
Echo 4 切换到2
Echo.
::Echo 6 服务器切换为内网
::Echo 7 服务器切换为外网
Echo 8 更新3
Echo.
Echo 9 强更主分支
Echo.
Echo 0 退出

Set /P Choice= 请输入数字 ,然后按回车:


If not "%Choice%"=="" (
If "%Choice%"=="0" (
exit
)

If "%Choice%"=="9" (
Echo on
git fetch --all && git reset --hard origin/master && git pull
pause
Echo off
goto :begin
)

If "%Choice%"=="8" (
Echo on
cd D:\3
git pull origin master
pause
cd D:\1\2
Echo off
goto :begin
)

If "%Choice%"=="7" (
goto serverA
goto :begin
)

If "%Choice%"=="6" (
goto serverB
goto :begin
)

If "%Choice%"=="4" (
Echo on
git checkout 3
pause
Echo off
goto :begin
)

If "%Choice%"=="3" (
Echo on
git checkout master
pause
Echo off
goto :begin
)

If "%Choice%"=="2" (
Echo on
git pull origin 3
pause
Echo off
goto :begin
)

If "%Choice%"=="1" (
Echo on
git pull origin master
pause
Echo off
goto :begin
)
)
Echo. pause

初始需求

第一次接触到需求是要用到大量的成语、能区分出多音字

  • 自己首先想到的是GitHub,在GitHub上搜索了下,果然搜索到了好多成语的源

    在其中找了一个词库比较大的,下载了下来

  • 然后找了几个汉字转拼音的网页,其中大多数不支持多音字

    最后找到了:http://www.zhuanpinyin.com

  • 将所有的成语粘贴、转换;然后在Excel中使用if判断下,完活!

需求变更

需求有了新的变更,要提供些成语的解释和故事

  • 起初是想到百度文档上找
    但在上面找了一些之后,发现都不太好,要么是词量少,要么是东拼西凑的。

  • 然后想在专业网站上找找。最终确定了:http://www.gushi51.com

  • 上面大概有4000个成语故事,怎么将这4000个给搞下成了一个大问题。
    第一时间想到的是使用爬虫。
    直接使用python,是不太可能的。
    在几个爬虫软件中选择了八爪鱼,可视化操作,这点大大降低了门槛。

  • 网页使用的是统一的模版,网址有规律
    直接使用八爪鱼的批量生成。
    开始自动流程。

新的问题

批量生成的网址大概2W+,实际可用的网址也就4000,在实际跑的过程有遇到了大量无效的网址。

  • 刚开始的时候,是观察网址段,将任务分解。
    实际操作的过程中,实在是太多的段了,手动去操作能累死。

  • 这些网页有目录页,现在打算从这方面做文章
    使用自动翻页,将所有的目录页,显示在同一个网页内。
    使用Link Grabber,将所有符合的链接提取出来。

  • 再将这个链接放进入八爪鱼中。

#现在问题算是基本完美的解决了!

#其他问题

  • 八爪鱼免费版本地跑到800条数据时,效率明显下降。
  • 在笔记本上850条时就会偶现卡死,不过等待一段时间后还能响应,接近900时卡死只能结束进程了
  • 台式机上坚持到了920条出现假死,接近1000时等待后还可响应

  • picpick

一款全能的设计工具,并且这款工具适宜每个人使用
http://ngwin.com/picpick
主要用来图片后期处理。

  • Snipaste

截图+ 贴图
https://zh.snipaste.com/index.html#

  • LISTARY

强大的本地文件搜索软件,比everthing好用。
http://www.listary.com/

  • Ditto

剪切板记录管理软件
http://ditto-cp.sourceforge.net/

  • DisplayFusion

双显控制软件,还有其他功能增强
https://www.displayfusion.com/

  • MouseInc

鼠标手势、按钮回显、OCR……
https://shuax.com/project/mouseinc/

0%