如何使用vlookup match组合?
VLOOKUP 和 MATCH 的组合就像一个超能力。众所周知,VLOOKUP 是最流行的函数之一。
正确的?
这可以帮助您快速找到列中的值。但当你使用得越来越多时,你就会意识到一些问题。最大的问题是它不是动态的。
在VLOOKUP中,col_index_no是一个静态值,这就是VLOOKUP不能用作动态函数的原因。而这就是需要将VLOOKUP和MATCH结合起来的地方。
如果您正在处理多列数据,则更改其引用会很痛苦,您必须手动执行此操作(更改列号)。
解决此问题的最佳方法是使用 VLOOKUP 中的 MATCH 函数来查找 col_index_number。今天,在这篇文章中,我将告诉您使用此组合公式所需了解的所有信息。
VLOOKUP 的问题
我发现创建这两个功能的组合有两个主要原因。
1. 静态引用
只需查看下面的数据表,其中就有 4 名不同员工 12 个月的销售额。
现在,假设您要搜索二月份的“John’s”促销活动。公式应该是这样的。
=VLOOKUP("May",A1:E13,2,0)
在这个公式中,您提到 2 作为 col_index_num,因为约翰的销售位于第二列。但是,如果你的老板告诉你要获取“Peter”的销售价值,你会怎么做?
您需要更改 col_index_num 中的值,因为它不是动态的。
2. 添加或删除列
现在以不同的方式思考。您需要在 John 的列之前为新员工添加一个新列。
这里约翰的列号是 3,您的公式结果不正确。
再次强调,因为 col_index_num 是一个静态值,所以您必须手动将其从 2 更改为 3,如果您需要其他值,则必须再次更改。
此时,您清楚地知道需要使 col_index_num 动态化的一件事。为此,最好的方法是将其替换为 MATCH 函数。
为什么要匹配函数
在结合VLOOKUP和MATCH之前,您需要了解匹配函数及其工作原理。 MATCH 的基本用法是查找某个范围内搜索值的单元格编号。
语法:MATCH(查找值,查找数组,[匹配类型])
它主要有三个参数,搜索值、搜索值的范围和指定精确匹配或模糊匹配的匹配类型。
例如,在下面的数据中,我正在使用标题行中的匹配函数搜索名称“John”。
并且,它在结果中返回 2,因为名称位于该行的第二个单元格中。
VLOOKUP 和 MATCH 一起使用
现在是时候将 VLOOKUP 和 MATCH 放在一起了。那么,让我们继续前面的例子。
首先,让我们使用这两个函数创建一个公式,然后我们将了解这两个函数如何协同工作。
创建此组合公式的步骤:
- 首先,在一个单元格中输入月份名称,在另一个单元格中输入员工姓名。
- 之后,在第三个单元格中输入以下公式。
=VLOOKUP(C15,A1:E13,MATCH(C16,A1:E1,0),0)
在上面的公式中,您使用 VLOOKUP 查找月份 MAY,对于 col_index_num 参数,您使用 match 函数而不是静态值。
在匹配函数中,您使用“John”(员工姓名)作为搜索值。
这里,匹配函数返回上一行中“John”的单元格编号。之后,VLOOKUP 使用该单元格编号返回值。
简单来说,MATCH函数告诉VLOOKUP列号来获取值。
问题解决了吗?
上面您了解了由static col_index_num引起的两个不同问题。
为此,您组合了 VLOOKUP 和 MATCH。现在我们需要检查这些问题是否得到解决。
1. 静态引用
您在匹配函数中引用了员工姓名来获取 VLOOKUP 的列号。
当您更改单元格中的员工姓名时,匹配函数会更改列号。当您需要获取另一位员工的值时,您需要更改单元格中的员工姓名。
这样你就有了一个动态的 col_index_number。
最后,您不必一次又一次地更改公式。
2. 添加或删除列
在添加新列之前,John 的数据位于第 2 列,match 函数返回 2。插入新列后,John 的数据位于第 3 列,match 函数返回 3。
当您为新员工添加新列时,公式值不会更改,因为匹配函数会更新其值。
这样,即使您插入/删除列,您也将始终获得正确的列号。 MATCH 函数将返回正确的列号。