最近在Excel World中有大新闻。最着名的Excel功能的新替代是
宣布
。
搬过来
VLOOKUP
你在聚光灯下的时间结束了!
XLOOKUP在这里,它可以做VLOOKUP可以做的一切,甚至更多!
让我们详细地看看这个新函数。
VLOOKUP问题
为什么要引入新的查找函数呢?VLOOKUP工作得很好,对吧?
好吧,Vlookup有很多问题,即初学者用户可能不知道。当我们不知道时,事情会出错,我们可能最终会得到不正确的结果。
vlookup默认不是完全匹配的。VLookup中的第4个参数是可选的,但默认值是使用近似匹配。这通常会导致不正确的结果。
VLOOKUP只能从第一项搜索到最后一项,并返回第一个匹配项。
VLOOKUP不能从左边返回结果,它只能返回查找列右边的结果。这意味着我们有时需要重新排列或向数据中添加帮助列。
VLOOKUP需要引用整个表。这意味着我们可能会引用大量不必要的单元格,这在重新计算工作簿时非常低效。
查找列需要是引用表中的第一列。同样,这有时意味着需要笨拙地重新排列我们的数据。
删除或插入列可以破坏vlookup。第3个参数列引用通常作为硬编码值输入。这意味着如果我们插入或删除列返回列到查找列的相对位置可以更改,但硬编码值不会更新。这可能导致我们的vlookup返回错误或意外的结果。
近似匹配只能返回下一个最小项目。
近似匹配需要数据按升序排序。在这种情况下,未排序的数据可能会导致错误的结果。
Xlookup旨在解决这些问题。
Excel的哪些版本会有XLOOKUP?
只有Office 365中的Excel将获得新的XLOOKUP功能。Excel 2019和以前的所有版本都没有这个新功能。
XLOOKUP目前仅对在
办公室内部人士
程序。但它最终将对所有Office 365用户开放。
XLOOKUP语法
那么XLOOKUP是什么样子的呢?有3个必需参数和2个可选参数。
= XLOOKUP (lookup_value, lookup_array, results_array, [match_mode], [search_mode]) / /查询结果
lookup_value
(
要求
) -这是我们要查找的值。
lookup_array
(
要求
) -这是我们想要查找lookup_value的值数组。
results_array
(
要求
) - 这是我们想要返回结果的相应值数组。
[
match_mode
) (
可选的
) -这是要返回的匹配类型。如果不输入此参数,则默认为精确匹配。
-
0.
=返回精确匹配。如果未找到完全匹配,则返回#n / a错误。这是默认匹配模式。
-
-1
=返回精确匹配。如果未找到完全匹配,则返回下一个最小值。
-
1
=返回精确匹配。如果没有找到确切的匹配,则返回下一个最大的值。
-
2
=返回完全匹配,但特殊字符
?
那
*
和
〜
将作为lookup_value中的通配符,允许返回部分匹配。
-
[
search_mode.
) (
可选的
) -这是要执行的搜索类型。如果不输入此参数,则默认为从头到尾搜索。
-
1
=在lookup_array中执行从第一项到最后一项的搜索,并返回results_array中的第一个匹配项。
-
-1
=从Lookup_array中的第一个项目中的搜索执行,并将返回结果返回结果_RARRAY。
-
2
=在lookup_array中执行从第一项到最后一项的二分查找。results_array需要按升序排序,否则结果可能不正确。
-
-2
=从Lookup_Array中的第一个项目执行二进制搜索。我们的结果需要按降序排序,或者结果可能不正确。
XLOOKUP只需要三个参数
Xlookup听起来比Vlookup更复杂!肯定有更多的选择。
不过,99%的情况下,我们希望执行基本的精确匹配查找。XLOOKUP只需要前3个参数就可以做到这一点。在这种情况下,这使得XLOOKUP比VLOOKUP更简单。
= XLOOKUP (B2, Countries[Country], Countries[Population])
在本例中,我们希望返回给定国家的人口。
我们希望为国家找到一个精确的匹配,并从数据表中返回相应的人口。
我们只需要使用XLOOKUP中的前三个参数来查找并返回精确匹配。
XLOOKUP可以从左边返回结果
查找数组和结果数组是独立引用的。因此,这意味着XLOOKUP能够将结果返回到查找数组的左侧。
XLOOKUP也将取代HLOOKUP,因为它也可以返回水平结果。
查找数组和结果数组不需要是垂直的。它们也可以是水平数组。
事实上,选择XLOOKUP中的“X”部分是因为它可以处理垂直和水平数据。
再见Hlookup!
= xlookup (b8, $ c $2:$ h $2, $ c $5:$ h $5)
在这个例子中,我们有一些月列标题以水平方式排列,对应的值在下面的行中。
我们可以使用XLOOKUP搜索给定的月份,并从总行返回结果。
Xlookup不能做垂直和水平
由于Xlookup与垂直和水平阵列一起使用,因此我们可能会尝试混合并匹配它们。不幸的是,这不起作用。
= XLOOKUP(B2,D4:D6,E2:G2)
在本例中,我们尝试在垂直数组中执行查找,并从水平数组返回值。这就导致了
#价值
错误。
XLOOKUP可以返回下一个最小或下一个最大的项[近似匹配]
VLOOKUP的近似匹配只能返回列表中的下一个最小项目。我们还需要通过以升序排序的数据来返回正确的结果。
使用XLOOKUP,我们可以选择返回下一个最小或下一个最大的项。我们不需要对数据进行排序。
-
查找69.9%将导致字母等级为C,因为60%是下一个最小的匹配。
-
抬头显示70%将导致B的字母等级,因为70%是完全匹配的。
-
查找70.1%将导致字母等级B,因为70%是下一个最小的匹配。
下一个最大的例子
使用完全相同的例子,并将第4个参数切换为
1
将产生以下结果。
-
抬头抬头69.9%会导致B的字母等级,因为70%是下一个最大的比赛。
-
抬头显示70%将导致B的字母等级,因为70%是完全匹配的。
-
抬头抬头70.1%会导致字母等级,因为80%是下一个最大的比赛。
现在XLOOKUP将返回我们列表中最后一个Garret的电子邮件!
带有通配符的XLOOKUP
Vlookup自动使用Excel的通配符字符(
*
那
?
那
〜
)。如果这是你的意图,这是非常棒的,但如果你试图搜索包含这些角色的内容,那就会令人沮丧。
XLookup在第4个参数中附带通配符搜索选项,因此您可以使用通配符明确要求搜索。
在这个例子中,我们使用
*
和
?
字符来搜索名称中的部分匹配,然后返回相应的电子邮件地址。
-
琼*
将搜索首次开始的比赛
琼..
和包含
此后的任何字符
。这将返回
[email protected]
作为第一场比赛。
-
琼? ?E.
将搜索首次开始的比赛
琼
,紧随其后的是
任何两个字符
以an结尾
E.
。这将返回
[email protected]
作为第一场比赛。
使用XLookup搜索多个标准
我们可以利用Excel中的新计算引擎以及XLookup以便根据多个标准轻松查找。
= XLOOKUP (B2 & C2,联系人[第一次]和联系人[最后一次],联系人[邮箱])
在本例中,我们希望根据联系人的姓和名搜索其电子邮件地址。我们需要基于两个标准进行查找。
现在我们可以使用&字符来完成这一操作。
我们可以通过使用&号将姓氏和名字连接在一起来创建一个新的查找值。
然后我们需要为查找阵列做同样的事情。我们通过使用Ampersand加入第一个和姓氏列来创建新查找阵列。
vlookup&hlookup会发生什么?
现在XLOOKUP已经让这两个函数都过时了,那么VLOOKUP和HLOOKUP会发生什么呢?
如果我们计划在任何其他Excel版本中没有任何其他Excel版本中不可用的人与Office 365共享我们的工作簿,我们仍然需要使用它们。
Microsoft将不会从Excel中删除它们。他们仍将在那里,可以使用。但是,当他们与日期函数相遇时,我可以看到遥远的未来。