Excel中的VLOOKUP,第2部分:在没有数据库的情况下使用VLOOKUP

在最近的一篇文章中,我们介绍了名为VLOOKUP的Excel函数,并解释了如何使用它将信息从数据库检索到本地工作表的单元格中。在那篇文章中,我们提到了VLOOKUP有两种用法,其中只有一种涉及数据库查询。在本文(VLOOKUP系列的第二篇也是最后一篇)中,我们将研究VLOOKUP函数的另一种鲜为人知的用法。

如果您还没有这样做,请阅读第一篇VLOOKUP文章-本文将假定读者已经了解了该文章中解释的许多概念。

当使用数据库时,VLOOKUP会被传递一个“唯一标识符”,用来标识我们希望在数据库中找到的数据记录(例如,产品代码或客户ID)。“这个唯一标识符必须存在于数据库中,否则VLOOKUP会返回一个错误。在本文中,我们将研究一种使用VLOOKUP的方法,其中该标识符根本不需要存在于数据库中。”几乎就好像VLOOKUP可以采用一种“差不多就足够好”的方法来实现这一点。在这篇文章中,我们将介绍一种使用VLOOKUP的方法,在这种情况下,该标识符根本不需要存在于数据库中。VLOOKUP几乎可以采用“差不多就足够好”的方法来

我们将用一个真实的例子来说明这篇文章--计算根据一组销售数字产生的佣金。“我们将从一个非常简单的场景开始,然后逐渐使它变得复杂,直到问题的唯一合理解决方案是使用VLOOKUP。”我们虚构的公司的初始场景是这样的:如果一个销售人员在给定的一年创造了价值超过3万美元的销售额,他们从这些销售额中赚取的佣金是30%。否则,他们的佣金只有20%。-到目前为止,这是这样的:如果一个销售人员在给定的一年创造了价值超过3万美元的销售额,他们从这些销售额中赚取的佣金是30%。否则,他们的佣金只有20%。*到目前为止,这是这样的

要使用此工作表,销售人员在单元格B1中输入他们的销售数字,单元格B2中的公式计算他们有权获得的正确佣金率,该佣金率在单元格B3中用于计算销售人员应获得的总佣金(这是B1和B2的简单乘法)。

单元格B2包含此工作表中唯一有趣的部分--决定使用哪种佣金费率的公式:低于3万美元门槛的公式,还是高于门槛的公式。*此公式使用了名为If的Excel函数。对于那些不熟悉If的读者,它的工作原理如下:

其中,条件是求值为TRUE或FALSE的表达式。在上面的示例中,条件是表达式B1<B5,它可以理解为“是否B1小于B5?”,或者换句话说,“总销售额是否小于阈值”。如果此问题的答案为“是”(TRUE),则我们使用函数的Value IF TRUE参数,即本例中的B6-如果总销售额低于阈值,则为佣金率。*如果问题的答案为“否”,则使用函数的Value IF TRUE参数,即本例中的B6-如果总销售额低于阈值,则为佣金率。*如果问题的答案为“否”,则使用函数的Value IF TRUE参数,即本例中的B6-销售总额低于阈值时的佣金率。然后,我们使用函数的value if false参数,即本例中的B7-如果销售总额高于阈值,则为佣金率。

如您所见,使用销售总额20,000美元,我们在单元格B2中的佣金率为20%。如果我们输入值40,000美元,我们将获得不同的佣金率:

因此,我们的电子表格工作正常。

让我们把事情变得更复杂一些。我们引入第二个门槛:*如果销售人员的收入超过4万美元,那么他们的佣金率就会提高到40%:

在现实世界中很容易理解,但在单元格B2中,我们的公式变得越来越复杂。如果你仔细观察公式,你会发现原来IF函数的第三个参数(如果值为False)现在本身就是一个完整的IF函数。这被称为嵌套函数(函数内的函数)。*它在Excel中完全有效(它甚至可以工作!),但更难阅读和理解。

我们不会深入到这是如何以及为什么工作的细节,也不会研究嵌套函数的细微差别。“这是关于VLOOKUP的教程,而不是一般的Excel教程。

无论如何,情况变得更糟了!当我们决定如果他们赚超过5万美元,他们就有权获得50%的佣金,如果他们赚到超过6万美元,那么他们就有资格获得60%的佣金,那怎么办?

现在单元格B2中的公式虽然正确,但实际上已经变得不可读了。“没有人应该写函数嵌套在四层深的公式!难道肯定有更简单的方法吗?

当然有。我们VLOOKUP来营救了!

让我们稍微重新设计一下工作表。“我们将保持所有的数字不变,但以一种新的方式来组织它,一种更表格的方式:

花点时间自己验证一下新的比率表是否与上面的一系列阈值完全相同。

从概念上讲,我们要做的是使用VLOOKUP在比率表中查找销售人员的总销售额(从B1开始),并向我们返回相应的佣金比率。请注意,销售人员可能确实创建了不属于比率表中的五个值之一的销售额($0、$30,000、$40,000、$50,000或$60,000)。他们可能创建了$34,988的销售额。但需要注意的是,$34,988没有出现在比率表中。

我们选择单元格B2(我们要放置公式的位置),然后从公式选项卡中插入VLOOKUP函数:

此时将出现VLOOKUP的函数参数框。“我们从Lookup_Value开始,逐个填写参数(参数),在本例中,它是单元格B1的销售总额。”我们将光标放在Lookup_Value字段中,然后单击单元格B1:

接下来,我们需要向VLOOKUP指定在哪个表中查找此数据。*在本例中,当然是比率表。*我们将光标放在Table_array字段中,然后突出显示整个比率表-不包括标题:

接下来,我们必须指定表中的哪一列包含我们希望公式返回给我们的信息。在本例中,我们需要佣金率,它位于表的第二列中,因此我们在COL_INDEX_NUM字段中输入2:

最后,我们在range_lookup字段中输入值。

重要提示:正是使用此字段区分了使用VLOOKUP的两种方式。要将VLOOKUP与数据库一起使用,最后一个参数RANGE_LOOKUP必须始终设置为FALSE,但是对于VLOOKUP的另一个使用,我们必须将其留空或输入值TRUE。使用VLOOKUP时,正确选择此最后一个参数至关重要。

为明确起见,我们将在RANGE_LOOKUP字段中输入值TRUE。*也可以将其留空,因为这是默认值:

我们已经完成了所有参数。“我们现在单击”确定“按钮,Excel将为我们构建我们的VLOOKUP公式:

如果我们尝试几个不同的销售总额,我们可以确信这个公式是有效的。

结束 / 结尾 / 结论 / 推论

在“数据库”版本的VLOOKUP中,RANGE_LOOKUP参数为FALSE,第一个参数传递的值(LOOKUP_VALUE)必须存在于数据库中。

但在VLOOKUP的另一种用法中,我们不一定要寻找完全匹配的内容。在这种情况下,“足够接近就足够好”。但是,我们说的“足够接近”是什么意思呢?让我们举个例子:*当搜索总销售额为34,988美元的佣金率时,我们的VLOOKUP公式将返回30%的值,这是正确的答案。*它为什么选择表格中包含30%的行?实际上,“足够接近”是指什么?

同样重要的是要注意,要使此系统正常工作,表必须在第1列上按升序排序!

如果您想练习VLOOKUP,可以从这里下载本文所示的示例文件。

相关文章