问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

XLOOKUP函数使用指南

创作时间:
作者:
@小白创作中心

XLOOKUP函数使用指南

引用
1
来源
1.
https://support.apple.com/guide/functions/xlookup-ffa6df8dc1ac/12.2/web/1.0

XLOOKUP函数

XLOOKUP函数在指定范围内搜索特定值,并返回同一行中另一列的值。

XLOOKUP(search-value, search-range, return-range, if-not-found, match-type, search-type)

  • search-value:在search-range中搜索的值。search-value可以包含任何值,或一个正则表达式字符串。
  • search-range:要搜索的单元格范围。
  • return-range:要返回的单元格范围。
  • if-not-found:可选参数,用于指定未找到匹配项时的显示信息。
  • match-type:可选参数,指定要搜索的匹配类型。
  • exact or next smallest(-1):如果没有匹配项,则返回错误。
  • exact match(0或省略):如果没有精确匹配,则返回错误。
  • exact or next largest(1):如果没有匹配项,则返回错误。
  • wildcard(2):*、?和~具有特殊含义。如果要在XLOOKUP中使用正则表达式,必须使用通配符。
  • search-type:可选参数,指定搜索范围的顺序。
  • Binary descending(-2):二进制搜索,要求范围按降序排序,否则返回错误。
  • Last to first(-1):从后向前搜索范围。
  • First to last(1或省略):从前向后搜索范围。
  • Binary ascending(2):二进制搜索,要求范围按升序排序,否则返回错误。

注意事项

  • 如果search-range或return-range是跨度引用(如"B"),则自动忽略标题和页脚。
  • 要从数组返回结果,可以使用INDEX与XLOOKUP结合。

示例

下表"Products"列出了产品及其属性,如尺寸和价格:

A
B
C
D
E
Product
Length (cm)
Width (cm)
Weight (kg)
Price
Product 1
16
17
10
$82.00
Product 2
16
20
18
$77.00
Product 3
11
11
15
$88.00
Product 4
15
16
20
$63.00
使用XLOOKUP进行搜索

使用XLOOKUP,你可以在电子表格中插入一个公式,通过首先提供产品名称,然后提供要返回的列,来返回任何相关值。例如,如果你想返回Product 1的宽度,可以使用以下公式,该公式返回17 cm:

在这个公式中,使用了以下参数:

  • search-value:Products::$A2,对Products表中包含Product 1的单元格的绝对引用。
  • search-range:Products::A,要搜索Product 1的列。
  • return-range:Width,包含与Product 1关联的值的列。
  • match-type:省略。如果省略match-type,XLOOKUP默认搜索精确匹配。
设置if-not-found字符串

如果你想搜索特定的产品长度并返回其匹配的宽度,以及在未找到匹配项时返回的字符串,可以使用以下公式,该公式返回"No match":

在这个公式中,使用了if-not-found参数来执行更具体的搜索:

  • search-value:13,要在search-range中搜索的值。
  • search-range:Length,要搜索的列。
  • return-range:Width,如果找到search-value的匹配项,则返回的列。
  • if-not-found:"No match",如果未找到长度为13 cm的产品,则显示的字符串。
  • match-type:精确匹配(0)。这仅搜索长度为13 cm的值。
查找最接近的值

XLOOKUP还可以基于特定值和与其接近的值进行广泛搜索。如果你更改上述公式的match-type,可以返回长度为13 cm的宽度,或下一个最小值。以下公式返回11 cm:

在这个公式中,参数与上述相同,但使用了不同的match-type值来更改搜索方式:

  • match-type:精确或下一个最小值(-1)。这搜索长度为13 cm的值,如果没有找到该值,则在Length列中查找下一个最小值。
更改搜索顺序

在某些情况下,更改XLOOKUP搜索表的顺序可能很有用。例如,在上述表中,有两个长度为16 cm的产品,因此如果在Length列中使用search-value和search-range搜索16 cm,可能会有两个潜在匹配项。你可以使用以下公式更改搜索顺序,该公式返回20 cm:

在这个公式中,使用search-type参数来设置XLOOKUP搜索表的顺序:

  • search-value:16,要在search-range中搜索的值。
  • search-range:Length,要搜索的列。
  • return-range:Width,如果找到search-value的匹配项,则返回的列。
  • if-not-found:"No match",如果未找到长度为16 cm的产品,则显示的字符串。
  • match-type:精确或下一个最大值(1)。这搜索长度为16 cm的值,如果没有找到该值,则在Length列中查找下一个最大值。
  • search-type:从后向前(-1)。这从最后一个值到第一个值搜索列。
与其他函数结合使用

XLOOKUP还可以与其他函数结合使用,如SUM。例如,你可以使用以下公式返回Product 1、Product 2和Product 3的价格总和,即$247:

在这个示例中,第一个XLOOKUP搜索Product 1的价格,第二个XLOOKUP搜索Product 3的价格。XLOOKUP函数之间的冒号(:)表示SUM应该返回的不仅是Product 1和Product 3的总价格,还包括它们之间的任何值。

在以下公式中,XLOOKUP与REGEX结合使用,返回Product 2,这是第一个宽度以"2"开头的产品:

在这个示例中,使用"通配符(2)"作为match-type来利用REGEX函数中的通配符。

额外示例

给定以下表格:

A
B
C
Name
Age
Salary
Amy
35
71000
Matthew
27
81000
Chloe
42
86000
Sophia
51
66000
Kenneth
28
52000
Tom
49
62000
Aaron
63
89000
Mary
22
34000
Alice
29
52000
Brian
35
52500
  • =XLOOKUP(49,B2:B11,C2:C11) 返回"62000",这是第一个年龄为49岁的员工的薪水。
  • =XLOOKUP(60000,C2:C11,B2:B11,"No match") 返回"No match",因为没有薪水为$60,000的员工。
  • =XLOOKUP(REGEX("^C.*"), A2:A11, B2:B11, FALSE, 2) 返回"42",这是"Chloe"的年龄,她是范围内第一个名字以"C"开头的员工。
  • =INDEX(XLOOKUP(A2,A2:A11,B2:C11),2) 返回71000,这是XLOOKUP返回的数组中的第二个值。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号