是否能用VLOOKUP函数获得检索列左侧的数值?

VLOOKUP 函数下,无法取得检索列左侧的数值

VLOOKUP 函数可以说是 Excel 中最重要的函数,这里让我们再来看看其具体的公式和功能。

【公式】

=VLOOKUP(检索值,检索范围,列数,0)

【功能】

在检索范围最左一列中查找与检索值相同的单元格,然后在该单元格中返回第三参数指定的列数中的某个单元格的值。

“从检索范围的最左边的列返回到第三参数指定的列数中的某个单元格的值”,也就是“返回位于该列右侧的值”。

那么,问题就来了。

“难道无法直接用这一列左侧的数值吗?”

“给第三参数做减法导出数值就可以了吧?”或许有许多人都抱有这样的疑问。但答案是:“不可以”。

那么,如果想要获得位于检索列左侧的列中的数值,应该怎么办?

什么是 OFFSET 函数

组合使用 OFFSET 函数与 MATCH 函数可以解决前文中的问题。OFFSET 函数的本质是“确定作为基准的单元格,通过上下左右偏移得到新的区域的引用”。

【公式】

=OFFSET(基准单元格,偏移行数,偏移列数)

【功能】

是以基准单元格为起始,返回按移动行数、移动列数偏移的单元格的值。

偏移行数,正数表示向下,负数表示向上。

偏移列数,正数表示向右,负数表示向左。

首先,举个非常简单的例子。

➊ 在 Excel 工作表的单元格 C3中输入“100”。

➋ 将下列公式输入任意一个单元格。

=OFFSET(A1,2,2)

输入有上述公式的单元格,将返回“100”。

作为基准单元格的 A1,向下2行、向右2列的目标单元格是 C3(值为100)。所以输有此公式的单元格所返回的值就是100。

将 OFFSET 函数与 MATCH 函数组合

运用这个公式,想办法引用检索列左侧的单元格。

下列表格我们可以看到,按照单元格 E2的数字,在 F2、G2的“课程”和“单价”中会分别对应返回数据。首先,先在 E2里输入1。

首先,F2的“课程”十分简单,通常使用 VLOOKUP 函数就能处理。

=VLOOKUP(E2,B:C,2,0)

在单元格 F2中输入=VLOOKUP(E2,B:C,2,0)后取得“课程”数据

但是,单元格 G2的“单价”数据位于单价的检索列(B 列)的左侧,这样用 VLOOKUP 函数就无法处理了。

这时候,我们可以组合使用 MATCH 函数和 OFFSET 函数。为了导出 E2中“No.”所对应的单价数据,G2中要输入以下公式:

=OFFSET(B1,MATCH(E2,B:B,0)-1,-1)

在单元格 G2中输入=OFFSET(B1,MATCH(E2,B:B,0)-1,-1)

以单元格 B1为基准,作为第二参数的结果的数字向下、再向左移动1格的目标单元格数值将会出现在 G2中。

第二参数的 MATCH 函数,会查找单元格 E2的值位于 B 列的上数第几列。单元格 E2的值若为1,B 列内容为1的单元格位于第2行,因此 MATCH 函数导出结果为“2”。在这个例子中,以单元格 B1为基准的 OFFSET 函数直接嵌入 MATCH 函数中,由于 B1向下偏移数为2,产生了1格的误差,所以需要做出调整,在此基础上减去1。

在 OFFSET 函数中,可以将第二参数的移动行数、第三参数的移动列数指定为负数值。也就是说,可以引用位于基准单元格的上方、左侧的单元格。利用这一特性,可以解决 VLOOKUP 函数无法引用位于检索列左侧单元格的缺陷。

如何用 VLOOKUP函数应对检索范围中竖列顺序的变动状况

输入表与负责部分的项目顺序不同时

在刚才的例子中,为了让“输入表”与“负责部分”的项目排列顺序保持一致,第三参数按顺序输入2、3、4……这样连续的序号。因此,VLOOKUP 函数第三参数引用嵌入了 COLUMN 函数,这样做会提高效率。

但是,如果像下面这样,输入表与负责部分的项目顺序不同时该怎么办?也就是说第三参数不是连续数字的话,各单元格中的 VLOOKUP 函数即便运用了 COLUMN 函数,也无法得出正确的第三参数。

输入表与负责部分的项目顺序不同时

此例中,D 列的“单价”对应“负责部分”最左端往右数第6列,E 列的“生产者”对应“负责部分”最左端往右数第5列。在这样的前提下,如果想要在单元格 C3中输入最开始的那个函数公式,之后只要复制到 G 列也都可以得出结果的话,我们应该怎么做呢?

在 C 列商品名的单元格输入的 VLOOKUP 函数中第三参数应该是什么数字呢?答案是2。那么,我们只要输入能自动导出数字2的第三参数就可以了。这时候,我们就要用到 MATCH 函数。

我们通过以下例子具体解释一下。

上述例子中,A1到 D1项目名称分别为“商品名”、“单价”、“生产者”、“最低订购单位”,这些项目在 F1到 I1的范围中位于左数第几列,会相应地显示在 A2到 D2中。以单元格 A2为例,“A1(即商品名)的值,在 F1:I1范围里位于左数第2个”,那么 A2中则会显示数字2。

在单元格 A2做出这种处理的是下面的函数公式。

=MATCH(A1,$F$1:$I$1,0)

MATCH 函数中第一参数指定的值,会导出在第二参数指定范围中位于第几位的数字。第三参数基本上“只要输入0就行了”。

在图中,将单元格 A2的公式一直复制粘贴到 D2。因为第一参数不做绝对引用,单元格 B2里被复制粘贴的公式中的第一参数为 B1,单元格 C2里被复制粘贴的公式的第一参数为 C1,D2中则是 D1。

第二参数限定了纵列或横行的范围。

▲指定纵列的范围

第一参数指定的值为在此范围内的上数第几行。

▲指定横行的范围

第一参数指定的值为在此范围内左数第几列。

单元格范围限定为 F1:I1,则呈现如下状态:

  • 单元格 A1即“商品名”位于左数第2个
  • 单元格 B1即“单价”位于左数第4个
  • 单元格 C1即“生产者”位于左数第3个
  • 单元格 D1即“最低订购单位”位于左数第1个

能够在单元格中显示数字2、4、3、1,是因为 MATCH 函数的处理。

在 VLOOKUP 函数的第三参数中加入 MATCH 函数,即使“输入表”与“负责部分”的项目的排列顺序不同,也能够通过 MATCH 函数取得“‘输入表’的各项目名在‘负责部分’下位于第几列”的数字,把这样的结构嵌入 VLOOKUP 函数第三参数中就能够解决顺序不同的问题。在输入表的单元格 C3,请输入以下公式:

=VLOOKUP($B3,$I:$N,MATCH(C$2,$I$2:$N$2,0),0)

然后复制到整个表格,画面则显示如下:

在单元格 C3中输入=VLOOKUP($B3,$I:$N,MATCH(C$2,$I$2:$N$2,0),0)并复制粘贴至全表

分析 MATCH 函数的处理

可能乍一看上述的公式很复杂,接下来我们来仔细分析一下。关键在于理解嵌入 VLOOKUP 函数第三参数的 MATCH 函数是如何发挥作用的。

MATCH(C$2,$I$2:$N$2,0)

这个公式得出的数字指向的是,第一参数指定的单元格 C2的值(即商品名的值)位于第二参数指定范围($I$2:$N$2)的左数第几个。在这一例子中为数字2,它与单元格 C3中以 B3的值(数字1)为检索值的 VLOOKUP 函数里,检索范围 I:N 从左数第几列的对应数字是一致的。

将输有单元格 C3内容的单元格一致复制粘贴到 G6,为了不让参照项移位,需要设定绝对引用。

输入商品名,自动显示价格——VLOOKUP函数的基础

假设有以下数据表格。

这时,A 列中输入商品代码后,单价一列即可自动出现价格,这样不仅十分方便,还能避免输入错误。

但是,要想实现这点,需要预先在其他地方准备好“各商品的价格”一览表。在这张 Excel 工作表中,可作为参考信息的表格(商品单价表)位于右侧。

那么,我们试着将与 A 列各商品代码匹配的单价显示在 B 列中吧。

➊ 在单元格 B2中输入以下函数。

=VLOOKUP(A2,F:G,2,0)

➋ 按回车键确定后,将 B2拖拽复制到单元格 B8。

按回车键确定后,将 B2拖拽复制到单元格 B8

由此,B 列的各单元格中出现了与商品代码匹配的单价。

在此输入的 VLOOKUP 函数,到底是什么样的函数呢?只有能够用文字解释,才算是完全掌握了这个函数。将 VLOOKUP 函数转换成文字,则为以下的指令:

“在 F 列到 G 列范围内的左边一列(即 F 列)中,寻找与单元格 A2的值相同的单元格,找到之后输入对应的右边一列(即 G 列)单元格。”

VLOOKUP 中的 V,代表 Vertical,表示“垂直”之意,意为“在垂直方向上查找”。此外,类似函数还有 HLOOKUP 函数,首字母 H 代表 Horizontal,表示“水平”之意。因篇幅有限,本书无法做出更详尽的说明,有兴趣的读者可自行了解。

参加名单中,有多少人出席—COUNTIF函数的基础

假设要制作活动的参加者名单。参加与否一列中需要输入○、△、×这3种符号。

活动出席人员名单

活动出席人员名单

那么,如自动计算出现在的参加者有几人,即标记“○”的人数是多少,以及“缺席人员,标记‘×’的有几个人”,应该怎样处理呢?当然,我们不可能每次都口头计算,再填到 E1~E3的表格里,这样太浪费时间了。

为节省时间,有一种函数可以算出“在 B 列中,标有‘○’的单元格有多少个”,那就是 COUNTIF 函数。

好了,我们来试着在 B 列中分别计算单元格 E1~E3中的○、△、×的数量吧。也就是说,即使这张参加名单表格有任何追加、变更的情况,各个记号的数量也会自动更新。

➊ 在单元格 E1中,输入以下公式,计算 B 列中与 D1有相同内容的单元格的数量。

=COUNTIF(B:B,D1)

在单元格 E1中,输入以下公式,计算 B 列中与 D1有相同内容的单元格的数量

➋ 按回车键,在单元格 E1中显示结果。

➌ 将公式拖拽复制至单元格 E3,显示其他记号的数量。

将公式拖拽复制至单元格 E3,显示其他记号的数量

COUNTIF 函数是由下面2种参数构成的。

  • 第一参数:计算其中非空单元格数目的区域
  • 第二参数:在第一参数的指定范围内计算数目的条件

指定范围(第一参数)中,计算出第二参数指定的值或者与指定的条件一致的单元格的数目。

按照负责人分别计算销售情况——SUMIF函数的基础

如下所示,A 列为负责人,D 列为销售额数据。

A 列:负责人,D 列:销售额

以这个数据表格为基础,从 G 列开始,计算每一个负责人的销售额的总和。

在做这项工作时,我看到很多人发生了以下“惨剧”。

  • 使用电子计算器,手动计算数据。
  • 输入“=SUM(D2,D7,D12,D17,D18)”,统计每一名负责人的销售额总数时,不断重复这一操作。

那么,怎样做才正确的呢?

这时我们可以使用 SUMIF 函数,我们看一下具体的操作步骤吧。

➊ 在单元格 H2内输入以下公式

=SUMIF(A:A,G2,D:D)

➋ 按下回车键后,单元格 H2内显示“吉田”负责的销售额。

按下回车键后,单元格 H2内显示“吉田”负责的销售额

➌ 将单元格 H2中的公式拖拽复制至 H6,则会显示相应的负责人的销售额。

➍ 想要得出所有负责人的销售额总和时,则需要双击单元格 H7,再按下 AUTOSUM 快捷键Alt += 。

再按下 AUTOSUM 快捷键Alt +=

➎ 按下回车键,可得出全员销售额的总和。

按下回车键,可得出全员销售额的总和

SUMIF 函数有三个参数。

  • 第一参数:用于条件判断的单元格区域
  • 第二参数:在第一参数指定的范围里,需要计算总和的行的判定条件
  • 第三参数:实际求和的区域

按照步骤1输入“=SUMIF(A:A,G2,D:D)”这一公式,Excel 会自动识别,做出以下的处理:

  • 需要计算总和的区域为 D 列数值。但并不是要算出 D 列中全部数值的总和。
  • 在 A 列中,只计算与 G2的值相同的行的 D 列数值的总和。

COUNTA函数与COUNT函数的区别

与 COUNTA 函数极为相似的函数是 COUNT 函数。它与 COUNTA 函数的区别如下:

  • COUNTA 函数

指定参数范围内,计算除空白单元格之外的单元格的个数,即统计包含数据的单元格的数量。

  • COUNT 函数

指定参数范围内,计算含有数值的单元格的数量。

也就是说,COUNT 函数只计算含有数字的单元格个数。因此,自动忽略统计含有文本的单元格的数量。在具体实务操作上,一般用 COUNTA 函数就够了,当需要计算输入有数字、数据的单元格的数量时,再使用 COUNT 函数即可。

能把函数用文字翻译出来

这一函数,实际是通过以下方式进行计算的。

“数一数在 A 列中,有多少单元格内含有数据(除空白单元格以外的数量),并减去1”

为什么要减去1呢?这是因为计算时要除去内容为“参加者姓名”的单元格 A1。像这样,在实际使用 Excel 时,必须掌握“迎合不同情况,在函数公式中通过增减数字进行调整”这种能力和思维方式。

“能把函数用文字翻译出来”非常重要。要习惯用文字来解释说明函数公式在进行怎样的处理。

此外,在此介绍的“整列单元格数减去1”的公式,也可用于自动增减在输入规则中的菜单选项。(参考后续)

Excel如何提高乘法运算、字符串混合输入的效率

在 Excel 中,同样有能够快速输入乘法运算和字符串的函数。

PRODUCT 函数可以对括号内指定的数值做乘法。例如,按如下方式输入,即可算出单元格 A1到 E1数值相乘后的结果。

=PRODUCT(A1:E1)

用星号(*)连接单元格的话,公式则如下所示。很明显,前面的方法要轻松得多。

=A1*B1*C1*D1*E1

除此之外,还有在括号内连接多个指定文本的 CONCATENATE 函数。首先输入:

=CONCATENATE(

之后,按住Ctrl 键,点击想要连接的单元格,像这样,选中的单元格会被“,”隔开。

=CONCATENATE(A1,B1,C1,D1,E1)

用“&”连接各单元格也是一样,但存在多个需要连接的目标单元格时,还是这种方法更简便。

本月销售额——SUM函数:计算连续单元格范围内的总和——ΣSUM

在 B12与 C12中输入数量与总销售额。

在 B12单元格里,输入 SUM(B2:B11)

其实,想要计算多个连续单元格范围内的总和,有更简便的方法,那就是使用ΣSUM 函数(SUM 函数中的一种),它的功能就是能够自动输入 SUM 函数和计算总和的范围。

可在【开始】栏目下点击ΣSUM 按钮,或者不使用鼠标,直接按快捷键。虽然这两种方法的区别甚微,但掌握快捷键总是方便的。先选择 B12,然后按下以下快捷键。

Alt +=

随后,就会像前文中的画面一样,系统自动指定合计单元格范围,目标单元格里也含有 SUM 函数。

并且,这时候如果在 B12与 C12都被选中的前提下,按下这个快捷键,处于自动选中合计单元格范围的 SUM 函数,会同时出现在这两个单元格中。

本月销售额——SUM函数:基础知识

在 Excel 中,加法用“+”符号进行运算。想要求单元格 A1与 A2的数值总和,可以用下列算式做加法。

=A1+B1

但是,如果做加法的单元格有很多,全部用“+”连接的话,需要多次输入“+”,这样做十分浪费时间。有一个函数专门用于简化多个单元格做加法时的输入操作,那就是 SUM 函数。

例如,要计算单元格 B2到 B11的值的总和,则在 B2中输入以下公式:

=SUM(B2:B11)

※目标单元格范围,用“:”(冒号)连接起始单元格和最终单元格。

也就是说,在 SUM 函数的括号中的内容是需要计算总和的单元格的范围。

【公式】

=SUM(想要计算总和数的单元格的范围)