月度归档:2018年12月

用 INDEX 和 MATCH 函数的组合取代 VLOOKUP 函数

0x00 前言

在 Excel 里,有无数或简单或复杂的函数,有些函数如 COUNT 可能我们天天都会用到,有些函数则是一辈子都不会碰到的陌生人,爱情也是如此。

而在那些复杂一点的函数里,最广为人知的函数可能就是 VLOOKUP 函数了,这个函数的作用很简单也很强大,就是从表格里找出匹配的的数据。用严肃的语言来说就是:「在数组第一列中查找,然后在行之间移动以返回单元格的值」。

个人认为是否可以使用 VLOOKUP 与 HLOOKUP 函数,大抵是一个人是否对 Excel「略知一二」的分界线。

但 VLOOKUP 函数虽然简单、易用、强大,却仍然有一些呆板的地方,这也很正常,在计算机程序里,「简单易用」往往「灵活多变」的反义词。VLOOKUP 函数的「查阅值」必须位于单元格区域的第一列,这让我们在表格中使用 VLOOKUP 函数时,不得不按照自己的需求重新组织单元格区域的结构,以让 VLOOKUP 函数可以正常工作。

那有没有方法可以让我们在达到 VLOOKUP 函数功能的同时,又可以避开这个「查阅值必须在首列」的白璧微瑕呢?答案就是使用「INDEX 和 MATCH 函数的组合」,我将在下文具体说明这个技巧。

继续阅读 →

JavaScript 笔记(一):字符编码

作为一个比较懒的人,我没有记笔记的习惯,结果大量不算常用的的内容就都只是记了个大概,每次用到时都只能现场谷歌。为了改掉这个习惯,今后遇到有趣的事情都会记录这样一篇笔记。

一方面,这些笔记可以让我在习惯性的遗忘一些知识时能够更快的回想起了,另一方面,也许也可以给同样正在学习 JavaScript 的同志们一些经验。

——王兆基 二〇一八年十二月八日

0x00:URI 编码

不管知不知道 JavaScript,几乎所有人都在浏览器的地址栏里见过 URI 编码,也就是类似于这样的东西:

图 1 浏览器地址栏的汉字 URI 编码

图中被红框框住的「%E7%8E%8B%E4%BC%AF%E6%96%87」,实际上就是汉字「王伯文」在 URI(Uniform Resource Identifier,即统一资源标识符,也就是我们俗称的网址)中的「转义序列(escape sequences)」。这些转义序列按照标准,是用 UTF-8 的编码方式编码每个字符的。

当然,如果只是使用的话,其实只需要知道,JavaScript 里可以用 encodeURI 与 encodeURIComponent 方法将 URI 中的字符进行处理,使用一到四个转义序列来表示字符串中的每个字符的 UTF-8 编码。但是我们总是会有许许多多的疑问,比如:encodeURI 方法和 encodeURIComponent 方法有什么区别?为什么是一到四个转义序列?为什么用的是 UTF-8 编码? UTF-8 编码又是什么?这个转换过程是怎样的?这就需要去了解更多的知识了,我将记录在下面。

继续阅读 →