转自excel不加班
里面就有提到lookup函数可以按顺序查找对应值,同时不按顺序也可以查找对应值。
1.按顺序返回多列对应值
=lookup(1,0/($a$2:$a$10=$a13),b$2:b$10)
这个公式的核心是b$2:b$10,采用了混合引用,公式在向右拖动的时候,返回的区域就自动变成c列、d列、e列、f列,从而能够找到每一列的值。
2.按不同顺序返回多列对应值
=lookup(1,0/($a$2:$a$10=$a13),offset($a$2:$a$10,,match(b$12,$a$1:$f$1,)-1))
返回区域这部分比较难理解,卢子先慢慢拆分开。
match函数是判断标题在原来区域第几列,比如订单数就在原来区域第3列。
=match(b$12,$a$1:$f$1,)
现在知道返回第3列,那如何获得第3列这个区域呢?
offset函数引用a列的内容,向右移动2列就是订单数,也就是3减去1,match-1。
offset($a$2:$a$10,,match(b$12,$a$1:$f$1,)-1)
不过公式是一个区域的结果,没办法在一个单元格显示,如果想验证一下引用是否正确,可以用f9键解读。得到的结果,完全跟猜想的一致。
当然,这里也可以借助index+match+match组合。
=index($a$1:$f$10,match($a13,$a$1:$a$10,0),match(b$12,$a$1:$f$1,0))
每个函数都有他本身存在的意义,善于运用,都可以发挥出无穷的魅力。函数无好坏,关键看谁用。