视频链接
一、Xlookup函数
1.Xlookup函数语法
语法:
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], , ) =Xlookup(值,查找列,返回值列,找不到显示,匹配类型,搜索模式)
参数说明:
lookup_value:要查找的值,可以是文本、数字、日期等。
lookup_array:查找的范围。XLOOKUP 会在此范围中查找 lookup_value。
return_array:当找到匹配值时,要返回的值的范围。它的大小应与 lookup_array 相同。
[if_not_found](可选):如果没有找到匹配项时要返回的值。如果省略此参数,当未找到时将返回 #N/A 错误。
(可选):指定查找类型的匹配方式。
0:精确匹配(默认)。
-1:查找小于或等于 lookup_value 的最大值。
1:查找大于或等于 lookup_value 的最小值。
2:通配符匹配(支持 * 和 ?)。
(可选):指定查找的方向。
1:从第一个元素到最后一个元素(默认)。
-1:从最后一个元素到第一个元素(反向查找)。
2.Xlookup函数应用
(1)单条件查找
语法:
= XLOOKUP(查找值,查找列,返回值列)
!注意事项:
用法类似LOOKUP函数,但注意使用LOOKUP函数查找区域需要升序排列
也可以使用VLOOKUP函数,需要注意查找值所在的列必须是在查找区域的最左列
(2)反向查找
语法:
= XLOOKUP(查找值,查找列,返回值列)
示例:根据演员张国荣,查找主演电影
!注意事项:
XLOOKUP可以反向查找,VLOOKUP常规下不可以反向查找会出错
(3)多条件查找
语法:
= XLOOKUP(条件1&条件2,条件1区域&条件2区域,返回值区域)
示例:查找导演克里斯托弗·诺兰在2010年上映的电影
!注意事项:
多条件查找也可以使用LOOKUP函数
= LOOKUP(1,0/(条件1*条件2*条件3...条件n),返回列)
(4)查找不到显示另外值
语法:
= XLOOKUP(查找值,查找列,返回值区域,找不到显示)
示例:查找张艺谋导演的主导的电影
!注意事项:
查不到显示另外值,如果使用VLOOKUP函数需要结合IFERROR函数
二、Match与Index函数
1.函数语法
(1)Match
语法:
MATCH(lookup_value, lookup_array, )
参数说明:
lookup_value:要查找的值,可以是数字、文本、日期等。这个值会在 lookup_array 中进行查找。
lookup_array:要搜索的范围或数组。MATCH 会在此范围中查找 lookup_value。
(可选):指定查找类型的匹配方式。
1 或省略(默认):查找小于或等于 lookup_value 的最大值。lookup_array 必须按升序排列(从小到大)。
0:精确匹配。lookup_array 可以是任何顺序。
-1:查找大于或等于 lookup_value 的最小值。lookup_array 必须按降序排列(从大到小)。
返回值:
MATCH 返回值在 lookup_array 中的相对位置。如果没有找到匹配值,MATCH 会返回 #N/A 错误。
示例:
假设我们有以下数据:
示例1:查找李四的位置
我们想要查找 "李四" 在数组中的位置:
=MATCH("李四", A2:A5, 0)
解释:
lookup_value 是 "李四"。
lookup_array 是 A2:A5(姓名列)。
match_type 是 0,表示精确匹配。
结果: 该公式返回 2,因为 "李四" 位于第二行。
示例2:查找大于或等于某个值的最小值的位置
假设我们有以下一列数字,且按升序排列:
我们想查找小于或等于 25 的最大值的位置:
=MATCH(25, B2:B5, 1)
解释:
lookup_value 是 25。
lookup_array 是 B2:B5(数字列)。
match_type 是 1,表示查找小于或等于 lookup_value 的最大值。
结果: 该公式返回 2,因为 20 是小于 25 的最大值,它在第二个位置。
示例3:查找文本中的匹配
如果我们想查找某个文本项(如 "张三")的索引:
=MATCH("张三", A2:A5, 0)
结果: 该公式返回 1,因为 "张三" 是该数组中的第一个元素。
(2)Index
语法:
INDEX(array, row_num, )
参数说明:
array:要从中获取数据的数组或范围。这个参数包含了所有可能的数据值。
row_num:指定返回值的行号。如果为 0,则表示返回整个列的数组。
(可选):指定返回值的列号。如果不提供 column_num,则假定数组只有一列。
返回值:
INDEX 返回 array 中指定位置的值。根据提供的 row_num 和 column_num 参数,INDEX 会在相应位置返回值。
示例:
假设我们有以下数据表:
示例1:从单列中返回值
假设我们想从 姓名 列(A列)返回第2行的值("李四"):
=INDEX(A2:A5, 2)
解释:
array 是 A2:A5,包含所有姓名。
row_num 是 2,表示我们需要返回第2行的值。
结果: 该公式返回 "李四"。
示例2:从多列中返回值
假设我们想从表格中返回第3行、第2列的值(即 "35" 对应年龄的值):
=INDEX(A2:C5, 3, 2)
解释:
array 是 A2:C5,包含所有数据。
row_num 是 3,表示我们要查找第3行。
column_num 是 2,表示我们要查找第2列的值,即 "年龄" 列。
结果: 该公式返回 35,因为 "王五" 的年龄是35。
示例3:返回整行或整列
如果我们想返回整个 "年龄" 列的数据,可以这样写:
=INDEX(B2:B5, 0)
解释:
array 是 B2:B5,包含所有年龄数据。
row_num 是 0,表示返回整个列的数据。
结果: 该公式返回整个 "年龄" 列的数据:25, 30, 35, 40。
示例4:与 MATCH 函数结合使用
INDEX 和 MATCH 常常结合使用,来查找一个值的位置,并根据该位置返回另一个相关值。假设我们想找出 "王五" 的性别:
=INDEX(C2:C5, MATCH("王五", A2:A5, 0))
解释:
MATCH("王五", A2:A5, 0) 查找 "王五" 在 A2:A5 中的位置,结果为 3。
INDEX(C2:C5, 3) 查找 C2:C5 中第3行的值,即 "男"。
结果: 该公式返回 "男",因为 "王五" 的性别是 "男"。
实例
从单个区域中获取值
=INDEX(A1:C3, 2, 3)
这个公式将返回区域 A1:C3 中第二行第三列的值。
当行号为 0 时,返回整列的值
=INDEX(A1:C3, 0, 2)
这个公式返回区域 A1:C3 中第二列的所有值。
两者一般嵌套使用
2.认识column函数
(1)COLUMN函数
语法:
COLUMN([reference])
参数说明:
reference(可选):这是一个单元格或区域的引用。如果省略此参数,COLUMN 函数将返回包含公式的单元格所在的列号。
返回值:
如果指定了 reference,COLUMN 返回该引用所在列的列号。
如果没有指定 reference,则返回包含公式的单元格所在的列号。
示例:
示例1:基本用法
假设我们想知道单元格 B1 所在的列号:
=COLUMN(B1)
解释:
B1 是我们要查询的单元格。
COLUMN 函数返回 B 列的列号,即 2。
结果: 该公式返回 2,因为列 B 是第二列。
示例2:在没有引用时使用
如果你在 C5 单元格中使用 COLUMN 函数,而没有指定任何单元格引用:
=COLUMN()
解释:
因为公式位于 C5,COLUMN 函数返回 C 列的列号,即 3。
结果: 该公式返回 3,因为 C 列是第三列。
示例3:返回一个区域的列号
假设我们想知道区域 A1:C5 的第一个单元格(A1)所在的列号:
=COLUMN(A1:C5)
解释:
A1:C5 是一个区域。
COLUMN 函数返回区域第一个单元格 A1 所在列的列号,即 1。
结果: 该公式返回 1,因为 A 列是第一列。
示例4:返回多个列号
如果我们在一个公式中使用一个区域,例如 A1:B5,并希望返回这些列的列号,我们可以使用 COLUMN 函数:
=COLUMN(A1:B5)
解释:
COLUMN 函数返回区域内所有列的列号。
由于区域 A1:B5 包含 A 列和 B 列,所以它会返回两个列号:1 和 2。
结果: 该公式返回 {1, 2},表示 A 列和 B 列。
示例5:与其他函数结合使用
你可以将 COLUMN 函数与其他函数结合使用。例如,如果你希望根据某个单元格的列号计算距离,可以结合 COLUMN 与 INDIRECT 函数:
=COLUMN(INDIRECT("C1"))
解释:
INDIRECT("C1") 返回 C1 单元格的引用。
COLUMN 函数返回 C1 所在的列号,即 3。
结果: 该公式返回 3,因为 C1 在 C 列。
实例:
说明:①可获取单元格或单元格区域的列序号。reference引用为单元格时返回结果是单元格对应的列序号。比如输入“=COLUMN(C13)”输出结果为3。②reference 不能引用多个区域。当引用连续几列时,输出结果溢出。比如输入“=COLUMN(C:D)”输出结果是两个单元格3和4
(2)COLUMNS函数
语法:
COLUMNS(array)
参数说明:
array:这是你要计算列数的单元格区域。你可以指定一个单元格区域、一个行列组合的区域,或者一个数组。
返回值:
返回指定区域中包含的列数。
示例:
示例1:基本用法
假设我们想知道区域 A1:C5 中包含多少列:
=COLUMNS(A1:C5)
解释:
区域 A1:C5 包括 A 列、B 列和 C 列。
COLUMNS 函数将返回该区域的列数。
结果: 该公式返回 3,因为区域 A1:C5 包含 3 列(A、B、C 列)。
示例2:单行区域
如果你想计算一个单行区域中有多少列,假设区域是 A1:Z1,你可以使用:
=COLUMNS(A1:Z1)
解释:
区域 A1:Z1 包括从 A 列到 Z 列的一整行。
COLUMNS 函数将返回该区域的列数。
结果: 该公式返回 26,因为区域 A1:Z1 包含 26 列(从 A 到 Z)。
示例3:计算多个行和列的区域
如果你有一个区域 A1:D10,并想知道该区域有多少列,可以使用:
=COLUMNS(A1:D10)
解释:
区域 A1:D10 包括 A 列、B 列、C 列和 D 列。
COLUMNS 函数将返回该区域的列数。
结果: 该公式返回 4,因为区域 A1:D10 包含 4 列(A、B、C、D 列)。
示例4:结合其他函数使用
你可以将 COLUMNS 函数与其他函数结合使用。例如,如果你想计算某个区域动态变化时的列数,可以结合 OFFSET 函数:
=COLUMNS(OFFSET(A1, 0, 0, 5, 3))
解释:
OFFSET(A1, 0, 0, 5, 3) 返回一个从 A1 开始的区域,包含 5 行和 3 列。
COLUMNS 函数返回该区域中的列数。
结果: 该公式返回 3,因为 OFFSET 函数返回了 3 列的区域。
实例
说明:①引用单元格或者某列单元格区域时,输出结果为1。如输入“=COLUMNS(A13)”或“=COLUMNS(D:D)”,输出结果均为1。② 引用多列单元格区域时返回结果为列个数。如输入“=COLUMNS(A1:C12)”,涉及到A、B、C三列,所以输出结果为3。
(3)COLUMN函数与COLUMNS函数的区别
COLUMN 函数用于返回单元格或区域的 列号(数字),它帮助你知道一个单元格处于第几列。
COLUMNS 函数用于返回一个 区域中包含的列数。它告诉你一个指定区域有多少列。
即
COLUMN 返回列的 数字编号,而 COLUMNS 返回列的 数量(即区域中的列数)。
(4)COLUMN函数与VLOOKUP函数结合使用
源数据:
通过“客户ID”得出其它数据,在返回列的部分使用column公式
注:源数据表头和要查询数据表头一致,不一致可以先调换顺序,再查找