0 系统环境
- excel版本:Excel 365 / wps
1 前言
查找函数用户需求:我想根据这个值,找到想要的其他列对应该行的值。
2 vlookup
规则
查询规则:VLOOKUP 只能从左向右查找,且查询值(lookup_value)必须位于查询区域(table_array)的最左列。查到了返回指定的列的值。
=VLOOKUP(要查找的内容、要查找的位置(数组)、包含要返回的值的范围内的列号(和编程里的不同,是从1开始)、返回表示为 1/TRUE 或 0/FALSE 的近似或精确匹配项)。
- 近似匹配我在excel群里看了,很少有人用到,一般场景是用数字的模糊查找,没有匹配到这个值,然后找比它小的值且最接近它的值。正常就是精确匹配(前提还要排序好,挺麻烦的,还不如用sql查的快呢)。
# 查找返回单列值的简易版伪代码
return table_array[返回值列号][table_array[0].index(lookup_value)]
demo
通过王五查找他对应的部门,从左往右查。
3 XLOOKUP
规则
版本高的还是用XLOOKUP更舒服。常规查找:查找的值,查找数组,返回数组。还可以查不到值时,返回提示。这里的搜索模式(针对查找数组)可以上下查找方式也是不错的。
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
demo
默认确实是从上往下查的。
只要把搜索模式改下就行。
连续多列返回也可以。
不连续的也可以,HSTACK = Horizontal Stack(横向堆叠)。
4 index + match
INDEX --> 比如拿着这个行号到返回区域里找对应的值。 MATCH --> 比如拿着这个查找值到查找区域里找对应的位置。
=INDEX(返回区域, 行号, [列号])
=MATCH(查找值, 查找区域, 匹配方式)