邪恶的GFW,你就饶了我吧:(

2009-04-06

洗面乳为啥要先挤出洗面乳在手掌上,然后加水揉出泡沫,最后在脸上按摩?

前段日子,领导买了一瓶洗面乳送给俺,在仔细阅读说明后领导郑重其事的嘱咐:要先挤出洗面乳在手掌上,然后加水揉出泡沫,最后在脸上按摩!
俺当时没敢吱声,心里那个纳闷呐,好像俺从来就是先把脸打湿,再挤出一段洗面乳直接往脸上按摩,反正脸上有水,也能揉出泡沫啊。虽然百思不得其解,但也一直按我的老办法,没有按照厂家的推荐意见办。
今天我在洗澡时突然灵光一闪,终于找到了原因:这明明是厂家多卖产品的窍门嘛。
大家想啊,“先挤出洗面乳在手掌上,然后加水揉出泡沫”,这样得白白给水冲走多少洗面乳啊!又想起了牙膏厂为了多卖牙膏把管口扩大1.4倍的经典故事,因为大众早已经习惯了挤出一定长度的牙膏,这样一来,牙膏的消耗就是原来的两倍。
果然无奸不商啊!

2009-04-01

用VLookup实现编码

以前的工作经常需要对数据进行编码。所谓编码就是针对一个数据,用另外一个数据来表达。比如学生的成绩评定,90~100:优秀、80~89:良好、60~79:及格、0~59:不及格。这就是最简单的编码。可见编码是一件非常简单的事情,但它的用处非常大,这可是数字化的最基础手段!

编码虽然简单,但想在Excel中快速,简单的实现编码还是有许多技巧。

常用的是求商取整,但这种方法有以下缺点:
1)、区间间隔一致,无法实现变长区间
2)、只能实现数据到数据的编码,无法实现其他数据类型的编码

为了克服以上缺点,必须使用分段函数,但这又比较繁琐,今天使用Vlookup核对数据时,突然想到Vlookup可以较好的满足编码的需求,并有以下优点:
1)、简单方便
2)、区间间隔可以任意指定
3)、可以实现任意数据类型到任意数据类型的编码

下面是Vlookup的简单介绍。

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

lookup_value:可以是数组喔,此时该公式就是数组公式,别忘记用Ctrl+Shift+Enter输入。

Table_array:一般至少为两列数据。
其中第1列中的值是分界点,相当于[M1, M2),[M2, M3),……,[Mn-1, Mn)
注意:
M1必须是可能值中的最小值,否则一旦lookup_value小于M1,Excel会返回#N/A
Mn不必是可能值中的最小值,即使lookup_value大于Mn,Excel也会定位到Mn所在行

col_index_num:table_array中待返回的匹配值的列序号,该序号从1开始
注意:
col_index_num不得小于1,否则Excel返回错误值#VALUE!。
col_index_num不得大于table_array的列数,否则Excel返回错误值#REF!。

Range_lookup为逻辑值
如果为TRUE或省略,则返回精确匹配值或近似匹配值。
table_array第一列中的值必须以升序排序;
此时如果找不到精确匹配值,则返回小于lookup_value 的最大数值。

如果为FALSE,Excel将只寻找精确匹配值。此时table_array第一列的值不需要排序。
如果table_array 第一列中有两个或多个值与lookup_value匹配,则使用第一个找到的值。
如果找不到精确匹配值,则返回错误值 #N/A。