
只要工具用得好,没有效率提不高。现在工具一大堆,各有所用,但是按照2/8原则,大家其实大多时候只用到了其中的20%的功能,如果能多用几个功能,同时结合多个工具一起配置,则能达到1+1>2的效果。
昨天碰到一个事,一个同学需要统计最近一段时间的团队经费最后的余额,由于当初记录每笔支出和收入的时候,只用记事本随便记了一下时间、金额以及少许备注,大致有一点格式:
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 92 93 94 95 96 97 98 99 |
10.08 收入:4557.4元 移交 支出:92元 10.09 支出:38元 10.10 收入:1500元 支出:42元 10.11 支出:55元 10.12 支出:8647元 雁荡山之旅团费 支出:53元 10.14 支出:55元 10.15 支出:56元 10.16 支出:72元 10.17 支出:40元 10.18 支出:64元 10.19 支出:600元 雁荡山团餐 10.20 支出:1500元 雁荡山团餐 收入:2000元 每人交100元 10.21 支出:68元 10.22 支出:58元 10.23 支出:56元 收入:530 + 530元 (XX和YY的雁荡山家属费以及水果费) 10.24 支出:1502元 欢送聚餐 10.25 支出:66元 收入:2820元 滑雪团建报销款 10.28 支出:72元 10.29 支出:57元 11.01 支出:64元 11.04 支出:59元 11.06 支出:83元 11.07 支出:2161元 聚餐 支出:782元 KTV 11.08 支出:85元 11.11 支出:61元 11.12 支出:46元 11.13 支出:46.5元 11.15 支出:38元 11.25 支出:74元 11.26 支出:43元 11.28 支出:47元 |
面对这些记录你想统计最后余额,会用什么办法?可能大部分人会老老实实的一个个的加减吧。
其实日常比较简单的统计软件比如excel,但是excel需要比较规整的格式,上面的这个数据就不能直接复制到excel来求和的。不过上面的数据还是有规律可循的,比如所有金额前面都有冒号;所有金额后面要么是空格,要么是元字;支出和收入有区分。这样一来就可以巧用notepad++的替换功能来简单的编辑一下,让其符合excel的要求。操作如下:
1. 把金额数字区分出来,使用notepad++的替换功能,把所有的”:”全部替换成“:\t\t”,然后把所有的单一空格替换成“\t\t”,这样做主要是为了把我想要的金额提取出来,注意替换时要选择“扩展”(后续的替换功能都需要选中这一项),如下图所示:

替换后效果如下:
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 92 93 94 95 96 97 98 99 |
10.08 收入: 4557.4元 移交 支出: 92元 10.09 支出: 38元 10.10 收入: 1500元 支出: 42元 10.11 支出: 55元 10.12 支出: 8647元 雁荡山之旅团费 支出: 53元 10.14 支出: 55元 10.15 支出: 56元 10.16 支出: 72元 10.17 支出: 40元 10.18 支出: 64元 10.19 支出: 600元 雁荡山团餐 10.20 支出: 1500元 雁荡山团餐 收入: 2000元 每人交100元 10.21 支出: 68元 10.22 支出: 58元 10.23 支出: 56元 收入: 530 + 530元 (强哥和我的雁荡山家属费以及水果费) 10.24 支出: 1502元 宝爷欢送聚餐 10.25 支出: 66元 收入: 2820元 滑雪团建报销款 10.28 支出: 72元 10.29 支出: 57元 11.01 支出: 64元 11.04 支出: 59元 11.06 支出: 83元 11.07 支出: 2161元 聚餐 支出: 782元 KTV 11.08 支出: 85元 11.11 支出: 61元 11.12 支出: 46元 11.13 支出: 46.5元 11.15 支出: 38元 11.25 支出: 74元 11.26 支出: 43元 11.28 支出: 47元 |
2. 由于支出的金额在统计时应该用负数表示,所以需要把支出的金额前面添加负号,操作为:把“支出:\t\t”替换为“ :\t\t-”,这样就变成了下面的样子:
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 92 93 94 95 96 97 98 99 |
10.08 收入: 4557.4元 移交 : -92元 10.09 : -38元 10.10 收入: 1500元 : -42元 10.11 : -55元 10.12 : -8647元 雁荡山之旅团费 : -53元 10.14 : -55元 10.15 : -56元 10.16 : -72元 10.17 : -40元 10.18 : -64元 10.19 : -600元 雁荡山团餐 10.20 : -1500元 雁荡山团餐 收入: 2000元 每人交100元 10.21 : -68元 10.22 : -58元 10.23 : -56元 收入: 530 + 530元 (强哥和我的雁荡山家属费以及水果费) 10.24 : -1502元 宝爷欢送聚餐 10.25 : -66元 收入: 2820元 滑雪团建报销款 10.28 : -72元 10.29 : -57元 11.01 : -64元 11.04 : -59元 11.06 : -83元 11.07 : -2161元 聚餐 : -782元 KTV 11.08 : -85元 11.11 : -61元 11.12 : -46元 11.13 : -46.5元 11.15 : -38元 11.25 : -74元 11.26 : -43元 11.28 : -47元 |
3. 使用notepad++一个很实用的列选择功能,来把金额所在列抠出来,即按住ALT键后,选择金额这一列即可,然后复制到另一个新打开的notepad++标签中,继续编辑,看到的效果如下:(当然其中有一点不太规整的地方可以手动调整一下,比如,里面有一行中有两个金额相加,可以调整为两行)
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 |
4557.4元 -92元 -38元 1500元 -42元 -55元 -8647元 -53元 -55元 -56元 -72元 -40元 -64元 -600元 -1500元 2000元 -68元 -58元 -56元 530 530元 -1502元 -66元 2820元 -72元 -57元 -64元 -59元 -83元 -2161元 -782元 -85元 -61元 -46元 -46.5元 -38元 -74元 -43元 -47元 |
4. 现在的数据除了元,其他都是金额了,现在需要把元子去掉,把多余的换行也去掉,操作如下:把“元”替换为空字符串“”,然后把连续的两个换行“\r\n\r\n”换成一个换行”\r\n”(如果一次换行不能达到效果,就再替换一次)。得到如下的效果:
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 |
4557.4 -92 -38 1500 -42 -55 -8647 -53 -55 -56 -72 -40 -64 -600 -1500 2000 -68 -58 -56 530 530 -1502 -66 2820 -72 -57 -64 -59 -83 -2161 -782 -85 -61 -46 -46.5 -38 -74 -43 -47 |
5. 现在数据,就很清晰了,这个数据,就可以直接粘贴到excel里面,使用其各种统计功能了,比如:求和。
从这个例子中可以看到,只要原始数据本身有规律,基本都可以使用notepad++的替换和列选择功能来达到抠数据的目的,甚至可以达到一些更复杂的目的。若要写程序恐怕不是一会儿的事吧。
一点心得,我经常用替换和列选择功能来做一些数据量不太大的文本抽取,有时碰到的情况是,需要把一行有规律的字符串中的某些字段抠出来,常用的做法是先把字段前面的标记替换成“\r\n\t\t\t”,然后把字段后面的标记替换成“\t\t\t”,这样就又可以使用列选择功能直接抠出这一列字段了。另外有时间字段前后的标记不统一,这时候就可以考虑更高级的“正则表达式”替换功能。巧用notepad++事半功倍,当然notepad++有这些有意思的功能,相信很多其他的编辑器也有类似的功能可以用,在此抛砖引玉。。。