在 Excel 中使用 VLOOKUP 函数:模糊匹配

我们最近专门写了一篇文章来介绍最有用的 Excel 函数之一,称为 VPR 并展示了如何使用它从数据库中提取所需信息到工作表单元格中。 我们还提到该函数有两个用例 VPR 其中只有一个处理数据库查询。 在本文中,您将学习另一种鲜为人知的使用该函数的方法 VPR 在Excel中。

如果你还没有这样做,那么一定要阅读上一篇关于函数的文章 VPR,因为以下所有信息都假设您已经熟悉第一篇文章中描述的原理。

使用数据库时,函数 VPR 传递一个唯一标识符,用于标识我们要查找的信息(例如,产品代码或客户识别号)。 此唯一代码必须存在于数据库中,否则 VPR 会报错。 在本文中,我们将研究这种使用函数的方式 VPR当 id 根本不存在于数据库中时。 好像函数 VPR 切换到近似模式,并选择在我们想要查找某些内容时提供哪些数据。 在某些情况下,这正是需要的。

生活中的一个例子。 我们设置任务

让我们用一个真实的例子来说明这篇文章——根据各种销售指标计算佣金。 我们将从一个非常简单的选项开始,然后逐渐将其复杂化,直到问题的唯一合理解决方案是使用函数 VPR. 我们虚构任务的初始场景如下:如果销售人员一年的销售额超过 30000 美元,那么他的佣金是 30%。 否则,佣金只有20%。 让我们以表格的形式来表示:

卖方在单元格 B1 中输入他们的销售数据,单元格 B2 中的公式确定卖方可以预期的正确佣金率。 反过来,得到的费率在单元格 B3 中用于计算卖方应收到的总佣金(只需将单元格 B1 和 B2 相乘)。

表格中最有趣的部分包含在单元格 B2 中——这是确定佣金率的公式。 此公式包含一个 Excel 函数,称为 IF (如果)。 对于不熟悉这个功能的读者,我将解释它是如何工作的:

IF(condition, value if true, value if false)

ЕСЛИ(условие; значение если ИСТИНА; значение если ЛОЖЬ)

Condition 是一个函数参数,它的值是 真实代码 (真),或 FALSE (错误的)。 在上面的例子中,表达式 B1

B1小于B5是真的吗?

或者你可以换一种说法:

当年的总销售额是否低于阈值?

如果我们回答这个问题 可以 (TRUE),然后函数返回 值为真 (如果为 TRUE 则为值)。 在我们的例子中,这将是单元格 B6 的值,即当总销售额低于阈值时的佣金率。 如果我们回答这个问题 没有 (FALSE) 然后返回 值为假 (如果为 FALSE 则为值)。 在我们的例子中,这是单元格 B7 的值,即当总销售额高于阈值时的佣金率。

如您所见,如果我们的总销售额为 20000 美元,我们将在单元格 B2 中获得 20% 的佣金率。 如果我们输入 40000 美元的值,那么佣金率将改变 30%:

这就是我们的桌子的工作方式。

我们使任务复杂化

让我们让事情变得更困难一些。 让我们设置另一个门槛:如果卖家的收入超过 40000 美元,那么佣金率会增加到 40%:

一切似乎都简单明了,但我们在单元格 B2 中的公式明显变得更加复杂。 如果您仔细查看公式,您会看到函数的第三个参数 IF (IF) 变成另一个成熟的功能 IF (如果)。 这种构造称为函数相互嵌套。 Excel 很高兴地允许这些构造,它们甚至可以工作,但它们更难阅读和理解。

我们不会深入研究技术细节——它为什么以及如何工作,我们也不会深入探讨编写嵌套函数的细微差别。 毕竟这是一篇专门介绍功能的文章 VPR,而不是 Excel 的完整指南。

无论如何,公式变得更加复杂! 如果我们为销售额超过 50 美元的卖家引入另一种 50000% 的佣金率选项会怎样。 如果有人卖出了超过 60000 美元,他们会支付 60% 的佣金吗?

现在单元格 B2 中的公式,即使写得没有错误,也变得完全不可读。 我认为很少有人想在他们的项目中使用具有 4 级嵌套的公式。 一定有更简单的方法?!

还有这样的方法! 该功能将帮助我们 VPR.

我们应用VLOOKUP函数来解决问题

让我们稍微改变一下桌子的设计。 我们将保留所有相同的字段和数据,但以一种新的、更紧凑的方式排列它们:

花点时间,确保新表 费率表 包含与之前的阈值表相同的数据。

主要思想是使用函数 VPR 根据表格确定所需的关税税率 费率表 取决于销售量。 请注意,卖家可以以不等于表中五个阈值之一的金额出售商品。 例如,他可以卖出 34988 美元,但没有这个数额。 让我们看看功能如何 VPR 可以处理这样的情况。

插入 VLOOKUP 函数

选择单元格 B2(我们要插入公式的地方)并找到 VLOOKUP Excel 函数库中的 (VLOOKUP): 公式 (公式)> 函数库 (函数库) > 查找和参考 (引用和数组)。

出现一个对话框 功能参数 (函数参数)。 我们一一填写参数的值,从 查找值 (查找值)。 在此示例中,这是单元格 B1 的总销售额。 将光标放在字段中 查找值 (Lookup_value) 并选择单元格 B1。

接下来,您需要指定功能 VPR在哪里查找数据。 在我们的示例中,这是一个表 费率表. 将光标放在字段中 表格数组 (表)并选择整个表 费率表除了标题。

接下来,我们需要指定使用我们的公式从哪一列中提取数据。 我们对佣金率感兴趣,它位于表格的第二列。 因此,对于论证 列索引号 (Column_number) 输入值 2。

最后,我们介绍最后一个论点—— 范围查找 (间隔查找)。

重要提示: 正是这个参数的使用使得应用函数的两种方式之间有所不同 VPR. 使用数据库时,参数 范围查找 (range_lookup) 必须始终有一个值 FALSE (FALSE) 搜索完全匹配。 在我们使用函数时 VPR,我们必须将此字段留空,或输入一个值 真实代码 (真的)。 正确选择此选项非常重要。

为了更清楚,我们将介绍 真实代码 (真)在该领域 范围查找 (间隔查找)。 虽然,如果您将该字段留空,这不会是一个错误,因为 真实代码 是它的默认值:

我们已经填写了所有参数。 现在我们按 OK, Excel 用函数为我们创建了一个公式 VPR.

如果我们对总销售额尝试几个不同的值,那么我们将确保公式正确工作。

结论

当函数 VPR 使用数据库,参数 范围查找 (range_lookup) 必须接受 FALSE (错误的)。 输入的值是 查找值 (Lookup_value) 必须存在于数据库中。 换句话说,它正在寻找精确匹配。

在我们在本文中看到的示例中,不需要完全匹配。 这是函数时的情况 VPR 必须切换到近似模式才能返回所需的结果。

例如: 我们想确定销售额为 34988 美元的销售人员在佣金计算中使用的费率。 功能 VPR 返回我们一个 30% 的值,这是绝对正确的。 但是为什么公式选择正好包含 30% 而不是 20% 或 40% 的行呢? 近似搜索是什么意思? 让我们清楚一点。

当论证 范围查找 (interval_lookup) 有一个值 真实代码 (TRUE) 或省略,函数 VPR 遍历第一列并选择不超过查找值的最大值。

很重要的一点: 要使此方案起作用,表的第一列必须按升序排序。

发表评论