模拟工作中的一个场景
左表是从出发地到目的地,不同城市的一个报价运费表
现在需要根据出发地和目的地,两个条件,快速交叉查找匹配出对应的运费是多少
有5种解决办法
1、VLOOUP+MATCH组合法首先,我们要使用MATCH函数,来定位,我们需要查找的数据源在第几列
当我们输入的公式是:
=MATCH(I2,$1:$1,0)
它表示I2单元格,在第1行的位置里面查找匹配,0表示精确匹配
它的结果就是4
通过这个公式,分别可以知道我们想要的结果在对应的列数
然后上面的公式作为VLOOKUP公式的第3参数进行返回,就可以得到我们想要的结果,综合使用的公式是:
=VLOOKUP(H2,A:F,MATCH(I2,$1:$1,0),0)
就可以查找匹配出对应的结果
2、使用INDEX+MATCH+MATCH组合INDEX的用法是:
INDEX(数据源,行标,列标),所以INDEX(A:F,3,4),表示返回数据源内第3行,第4列的结果
所以我们可以用MATCH函数分别去找到行标和列标
综合下来,使用的公式是:
=INDEX(A:F,MATCH(H2,A:A,0),MATCH(I2,$1:$1,0))
3、使用OFFET+MATCH原理和上面差不多,但是利用的是偏移的特性
我们使用的公式是:
=OFFSET($A$1,MATCH(H2,A:A,0)-1,MATCH(I2,$1:$1,0)-1)
从左上方A1单元格进行偏移,偏移量都需要减去1,也可以得到正确的结果
4、使用INDIRECT+名称管理器的方法首先,我们需要选择数据区域的内容,然后在公式选项下,点击根据所选内容创建,然后勾选,首行和最左列,然后点击确定
有了这一步操作之后,我们只需要输入的公式是:
=INDIRECT(H2) INDIRECT(I2)
注意中间有一个空格符合
这样也可以得到对应的结果,利用的是空白符,可以返回横列交叉中间数据
但是这种方法,如果源数据改动之后,需要重新定义名称管理器,才能得到结果,否则不会刷新结果
5、两个XLOOKUP公式我们使用的公式是:
=XLOOKUP(H2,A:A,XLOOKUP(I2,$1:$1,$1:$1048576))
XLOOKUP即可以横向查找,也可以纵向查找
首先用横向查找,可以把目的地对应的所有数据源给匹配出来,得到一个数组
然后再使用纵向查找,查找上方的数组,可以把出发地对应的数据匹配出来
以上几个方法,你都会用么?动手试试吧!