如何在Excel中使用VLOOKUP

VLOOKUP是Excel最有用的功能之一,也是最难理解的功能之一。在本文中,我们通过一个真实的例子来揭开VLOOKUP的神秘面纱。我们将创建一个可用的 发票模板 对于一个虚构的公司。

VLOOKUP是一个Excel 功能。本文将假定读者已经对Excel函数有一定的了解,并且可以使用诸如SUM,AVERAGE和TODAY之类的基本函数。在最常见的用法中,VLOOKUP是 数据库 函数,这意味着它可以与数据库表一起使用-或更简单地说, 清单 Excel工作表中的内容。什么样的东西出色地, 任何 那类的东西。您可能有一个工作表,其中包含员工,产品,客户,CD集合中的CD或夜空中的星星的列表。没关系。

这是列表或数据库的示例。在这种情况下,这是我们的虚拟公司销售的产品清单:

通常,这样的列表对于列表中的每个项目都有某种唯一标识符。在这种情况下,唯一标识符位于“项目代码”列中。注意:为了使VLOOKUP函数与数据库/列表一起使用,该列表必须具有包含唯一标识符(或“键”或“ ID”)的列,并且 该列必须是表中的第一列。上面的示例数据库满足了这一标准。

使用VLOOKUP的最难的部分是准确了解其用途。因此,让我们看看是否可以先弄清楚这一点:

VLOOKUP基于提供的唯一标识符实例从数据库/列表中检索信息。

在上面的示例中,您将VLOOKUP函数插入带有商品代码的另一个电子表格中,它将返回给您原始商品中所述的相应商品的描述,其价格或可用性(“库存”数量)列表。这些信息中的哪一条会带您回去?好吧,在创建公式时,您需要决定这一点。

如果您需要的只是数据库中的一条信息,那么要在其中构造带有VLOOKUP函数的公式将很麻烦。通常,您会在可重用的电子表格(例如模板)中使用这种功能。每当有人输入有效的商品代码时,系统都会检索有关相应商品的所有必要信息。

让我们创建一个示例: 发票模板 我们可以在虚拟公司中反复使用。

首先,我们启动Excel,然后为自己创建一个空白发票:

这就是它的工作方式:使用发票模板的人员将在“ A”列中填写一系列商品代码,然后系统将从我们的产品数据库中检索每个商品的描述和价格。该信息将用于计算每个项目的行总计(假设我们输入有效数量)。

为了使此示例保持简单,我们将在同一工作簿中的单独工作表上找到产品数据库:

实际上,产品数据库更有可能位于单独的工作簿中。它与VLOOKUP函数没有什么区别,该函数并不真正在乎数据库是位于同一工作表,不同工作表还是完全不同的工作簿上。

因此,我们创建了产品数据库,如下所示:

为了测试我们将要编写的VLOOKUP公式,我们首先在空白发票的单元格A11中输入有效的商品代码:

接下来,我们将活动单元格移动到要存储通过VLOOKUP从数据库中检索到的信息的单元格中。有趣的是,这是大多数人都会犯错的步骤。进一步说明:我们将创建一个VLOOKUP公式,该公式将检索与单元格A11中的物料代码相对应的描述。当我们得到这个描述时,我们希望把它放在哪里?当然,在单元格B11中。因此,我们在这里写了VLOOKUP公式:在单元格B11中。现在选择单元格B11。

我们需要找到Excel必须提供的所有可用函数的列表,以便我们可以选择VLOOKUP并在完成公式时获得一些帮助。首先点击 公式 标签,然后单击 插入功能:

出现一个框,允许我们选择Excel中可用的任何功能。

要找到我们要寻找的那个,我们可以输入“ lookup”之类的搜索字词(因为我们感兴趣的功能是 抬头 功能)。系统将向我们返回Excel中所有与查找相关的功能的列表。 VLOOKUP 是列表中的第二个。单击它,选择它 好的.

功能参数 框出现,提示我们进行所有 论点 (或者 参数)以完成VLOOKUP功能。您可以将此框视为向我们询问以下问题的函数:

  1. 您正在数据库中查找什么唯一标识符?
  2. 数据库在哪里?
  3. 您希望为您检索到数据库中与唯一标识符关联的哪条信息?

显示了前三个参数 粗体,表明它们是 强制的 参数(如果没有参数,则VLOOKUP函数是不完整的,并且不会返回有效值)。第四个参数不是粗体,表示它是可选的:

我们将按顺序从上到下完成参数。

我们需要完成的第一个论点是 查找值 争论。该函数需要我们告诉它在哪里可以找到唯一标识符( 项目代码 (在这种情况下)应该返回其描述。我们必须选择我们先前输入的项目代码(在A11中)。

单击第一个参数右边的选择器图标:

然后,在包含商品代码(A11)的单元格上单击一次,然后按 进入:

“ A11”的值插入到第一个参数中。

现在我们需要为 表格数组 争论。换句话说,我们需要告诉VLOOKUP在哪里可以找到数据库/列表。单击第二个参数旁边的选择器图标:

现在,找到数据库/列表,然后选择整个列表-不包括标题行。在我们的示例中,数据库位于单独的工作表上,因此我们首先单击该工作表选项卡:

接下来,我们选择整个数据库,不包括标题行:

…然后按 进入。代表数据库的单元格范围(在本例中为“'Product Database'!A2:D7”)会自动为我们输入到第二个参数中。

现在我们需要输入第三个参数, Col_index_num。我们使用该参数向VLOOKUP指定数据库中的哪些信息,并与我们在A11中的项目代码相关联,我们希望已经返回给我们。在此特定示例中,我们希望该商品的 描述 回到我们身边。如果您查看数据库工作表,则会发现“说明”列是 第二 数据库中的列。这意味着我们必须将“ 2”的值输入到 Col_index_num 盒子:

请务必注意,我们此处未输入“ 2”,因为“说明”列位于 该工作表上的专栏。如果数据库恰巧在列中启动 ķ 在工作表中,我们仍将在此字段中输入“ 2”,因为在指定“ Table_array”时,“描述”列是我们选择的单元格集中的第二列。

最后,我们需要确定是否在最终的VLOOKUP参数中输入一个值, Range_lookup。此参数需要一个 真的 或者 错误的 值,否则应留空。当对数据库使用VLOOKUP时(确实有90%的时间是正确的),可以考虑以下决定在此参数中放入内容的方法:

如果数据库的第一列(包含唯一标识符的列)按字母/数字升序排序,则可以输入 真的 进入此参数,或将其留空。

如果数据库的第一列是 不是 排序,或以降序排序,那么您 必须 输入一个值 错误的 进入这个论点

作为数据库的第一列是 不是 排序后,我们进入 错误的 进入这个论点:

就是这样!我们已经输入了VLOOKUP返回所需值的所有信息。点击 好的 按钮,请注意,已将与项目代码“ R99245”对应的描述正确输入到单元格B11中:

为我们创建的公式如下所示:

如果我们输入 不同的 物料代码放入单元格A11中,我们将开始看到VLOOKUP函数的功能:描述单元格进行更改以匹配新物料代码:

我们可以执行一组类似的步骤来获取商品的 价格 返回到单元格E11。请注意,必须在单元格E11中创建新公式。结果将如下所示:

…公式将如下所示:

请注意,两个公式之间的唯一区别是第三个参数(Col_index_num)已从“ 2”更改为“ 3”(因为我们希望从数据库的第3列中检索数据)。

如果我们决定购买其中2件,则在单元格D11中输入“ 2”。然后,我们将在单元格F11中输入一个简单公式以得出行总数:

= D11 * E1

看起来像这样

完成发票模板

到目前为止,我们已经学到了很多有关VLOOKUP的知识。实际上,我们已经学到了本文中要学的所有知识。请务必注意,VLOOKUP可以在数据库以外的其他情况下使用。这种情况不太常见,以后的“ How-To Geek”文章中可能会介绍。

我们的发票模板尚未完成。为了完成它,我们将执行以下操作:

  1. 我们将从单元格A11中删除示例商品代码,并从单元格D11中删除“ 2”。这将导致我们新创建的VLOOKUP公式显示错误消息:



    我们可以通过明智地使用Excel的 如果()ISBLANK() 职能。我们从此更改公式... = VLOOKUP(A11,“产品数据库”!A2:D7,2,FALSE)…对此…= IF(ISBLANK(A11),””,VLOOKUP(A11,“产品数据库”!A2:D7,2,FALSE))


  2. 我们将把单元格B11,E11和F11中的公式复制到发票项目行的其余部分。请注意,如果执行此操作,则生成的公式将不再正确引用数据库表。我们可以通过将数据库的单元格引用更改为 绝对 单元格引用。或者-甚至更好-我们可以创建一个 范围名称 整个产品数据库(例如“产品”),并使用此范围名称代替单元格引用。公式将由此改变…… = IF(ISBLANK(A11),””,VLOOKUP(A11,“产品数据库”!A2:D7,2,FALSE))…对此… = IF(ISBLANK(A11),””,VLOOKUP(A11,Products,2,FALSE))…和 然后 将公式复制到发票项目的其余行。
  3. 我们可能会“锁定”包含公式的单元格(或更确切地说, 开锁其他 单元格),然后保护工作表,以确保当有人来填写发票时,我们精心构建的公式不会被意外覆盖。
  4. 我们将文件另存为 模板,以便公司中的每个人都可以重复使用

如果我们感到 真的 聪明的做法是,我们将在另一个工作表中创建一个包含所有客户的数据库,然后使用在单元格F5中输入的客户ID在B6,B7和B8单元格中自动填写客户的姓名和地址。

如果您想练习VLOOKUP,或者只是看到我们生成的发票模板,可以从这里下载。


$config[zx-auto] not found$config[zx-overlay] not found