从Excel的vlookup()函数说起
1,一个实际问题
提问:我有一张很大的表,比如说,全国所有城市和对应的人口数。现在我要把我所研究的10个城市的人口数找出来,我应该怎么做?
最简单的答案:把这张大表打印出来,然后圈出自己要研究的城市的人口,然后再输入到对应的表里面去。
我找到的答案:将大表放到Excel中,然后使用vlookup()函数,应用关键字索引,将所需要的对应人口数量找出来。具体用法如下:
=vlookup(关键字, 搜索表, 返回值所在列, 精确搜索开关)
当然,你也可以用python,或者任何你喜欢的自动化工具来完成这件事情,欢迎提供更高效的方法。
这个是我最近两周在做的一件工作,有一组研究对象,我需要从不同的大型数据库中抽取他们的属性值,进行比较研究。幸运的是,这几个数据库都有导出到Excel的功能,不然我真的会疯了,因为有100个研究对象,4个数据库。最后,是vlookup()救了我一命。是的,只一条命令。
2,数据复用
英文里面有一个词叫mashup,原意是声轨合成。简单的说,就是将不同来源的数据整合到一起,重新组合,以创造新的价值。很多文章都在讨论这个问题,很多博客都在做这件事情——比如说,他们将自己读过的好的博客,在自己的博客文章中列出来。方军最近在讨论的新闻聚合,还有他最近引用的IBM的新闻,都在说明,数据的整合和重复利用已经成为一个新的增长点,在这一点上,我们能够做更多的工作。
从根本上来说,博客的流行和RSS(订阅源)有关,而RSS就是一种标准的数据交换手段。虽然他只是一个小小的文件,但是它通过标准化的数据交换,使每一个博客上的数据可以被第三方站点很容易的重新展示和复用,从而增加了信息的价值。
另外,也曾经看到有些博客讨论在国内还没有流行起来的微格式,比如说,用标准格式展示个人名片,便于在互联网上交流和沟通。这些都是增加信息复用方便程度的手段。
相对来说,很多的商用数据库还是比较封闭的,除了用自己的查询手段之外,无法与第三方软件对接。这一次我还算幸运,至少他们能够导出Excel。但更多的是一种传统思维的问题,比如说,很多人喜欢用Word做表格,因为打印出来比较漂亮,或者比较容易调整格式——但却因此大大增加了数据复用的难度。(在此我们暂不讨论使用.doc之类封闭格式所带来的负面影响)
3,软件帝国
曾经很流行一句话:“用户往往只用到Office中10%的功能而已。”
我想,那是说Office 97吧,那个时候刚刚整合进去VBA。现在应该是1%了。比如说,Office的多语言和全球部署,已经是2000年出来的功能;后来是2003,然后是2007。MS已经不知道往里面添加了多少新功能了。
问题是,用户会去探索这些功能么?
记得似乎是在Linus的Just for fun里面读过,绝大多数人用计算机,学习编程,仅仅是停留在”hello world”上面而已。”hello world”,然后呢?没有了。
这一次周末在火车上,和unclewang聊了一路,也是说的这个问题。unclewang用计算机不太久,不过她觉得很新奇——原来计算机除了看电影、上BBS,还能做这么多有趣的事情?
其实很多时候,我们只需要多想一点:“这件事情用计算机来做,能够在哪些地方更为省力?”
经验表明,最懒惰的人,往往才是最好的玩家。
反过来说,对于“勤奋”的普通人,商家要考虑的就是发布粒度的问题了,用可以接收的方式,把好的功能推给用户。微软?太大了,简直没有所谓粒度的问题……
Powered by ScribeFire.
- 笔记:大连PX,化工企业的命运转折 - 2011
- 新潮:RevoPower自行车组件 - 2006
- 忙着做协会 - 2005

如果你用excel做更大的东西,你会发现vlookup()的执行效率很低。特别是索引表很大的时候。我的同事的索引表有3万多行,所以每次他vlookup()都要等上几个小时。即便索引表只有几十行,当你要做很多个query的时候,这个时间也能有数十分钟那么长。但是,这些应用都不值得用python来做,因为学习成本和转换成本。实际上,对于这种大规模的应用,我们是用access来做的。
还没有一个桌面数据库像access这样方便易用。
Reply
Neo
25 Sep 07 at 22:22
这篇不错,star&share一下
Reply
paanda
26 Sep 07 at 14:22
的确……大多数人不知道网络还有什么其他服务,他们只用IE;只知道手机日历;只知道IE收藏夹……等等等等;并且也没有去接触的热情,就像被人邀请注册了饭否却因不会使用而不再登录;更不要提从前英文界面的GoogleReader……那次看到一个统计显示:
“大部分互联网用户并不知道橙色XML按钮是什么意思,只有4%的用户使用过这个橙色的XML按钮订阅RSS新闻。即使知道RSS是什么意思的用户中也只有38%的用户使用这个RSS订阅按钮。更糟糕的是,有22%的用户点击了这个橙色按钮之后甚至都不知道又该采取什么动作,于是有26%的人在点击之后只好离开该网站。”
Reply
后潭
26 Sep 07 at 15:30
[quote comment="18142"]“大部分互联网用户并不知道橙色XML按钮是什么意思,只有4%的用户使用过这个橙色的XML按钮订阅RSS新闻。即使知道RSS是什么意思的用户中也只有38%的用户使用这个RSS订阅按钮。更糟糕的是,有22%的用户点击了这个橙色按钮之后甚至都不知道又该采取什么动作,于是有26%的人在点击之后只好离开该网站。”[/quote]
可能对于很多人来说,添加到收藏夹才是最好的访问手段:)
Reply
ppip
26 Sep 07 at 17:13
万能的伟大的SQL
Reply
else
26 Sep 07 at 17:26
到写毕业论文时我才明白,最管用的开发工具是 PowerPoint,数据分析工具是 Excel,编辑软件是 Word。毫无疑问有比 Excel 更高效的工具,可若是不了解 Excel 的话,可能是连数据分析的门都没摸到呢。
Reply
momo
26 Sep 07 at 18:46
[quote comment="18144"]万能的伟大的SQL[/quote]
Scale, performance & cost matter a lot in business context.
Reply
Neo
26 Sep 07 at 22:15
microsoft的确很伟大….
Reply
caii
27 Sep 07 at 10:51
[quote comment="18145"]到写毕业论文时我才明白,最管用的开发工具是 PowerPoint,数据分析工具是 Excel,编辑软件是 Word。毫无疑问有比 Excel 更高效的工具,可若是不了解 Excel 的话,可能是连数据分析的门都没摸到呢。[/quote]
最近用Excel,觉得有一个麻烦。Excel内部所有的数字都是用双精度浮点储存的,造成他在某些数字上会有精妙的,很难修复的bug。比如在邮件合并中,他和Word就配合的并不好,Word总会把Excel储存的数字搞错。
See Also: http://software.solidot.org/article.pl?sid=07/09/27/0745258
[quote comment="18150"]Scale, performance & cost matter a lot in business context.[/quote]
So it should be a balance of the three facts, which is more important?
Reply
ppip
29 Sep 07 at 23:00
碰上一个excel的麻烦, 想看看版主或其它大侠有没有兴趣研究.
有一系列的记录, 放在excel表中,类似如下形式:
日期 货品 报价
20080202 aaa 36.50
20080305 bbb 108.00
20080305 aaa 39.00
20080306 bbb 103.00
……
现在在另一张表里要引用这个原始记录表中某种货品的最新报价,
本人研究了很久都搞不定(因为不允许原记录重排序)。
原因是vlookup查出的是头一个记录, 相当于最老的报价,
而不是我想要的最新的报价.
我想请大侠们研究的就是: 怎么找出最新的报价.
请注意了:因原始记录比较多, 不允许对原始记录重新排序.
如果有解决办法, 请发邮件给: wuq737@hotmail.com
非常感谢!
Reply
wuq737
6 Mar 08 at 16:50
研究了半天,不写VBA还真不好搞定……允许写否?
Reply
ppip
7 Mar 08 at 15:30